标签: asp

  • ASP不是简单、低能的代名词

    很多人错误地认为ASP是简单、低效的代名词,认为ASP是低能的,不足挂齿的,也很简单,一学就会,一琢磨就精通。

    有人讲ASP不安全,写ASP的程序的时候如果严格按照书写安全的代码的规范去写,写出来的程序也没有什么理由不安全。那些人说ASP不安全,好像PHP、JSP的程序就不会出现SQL Injection似的。

    有人讲ASP不高效,真的想要高效的话你可以结合COM,在Win32平台下COM的效率Java是永远追不上的。单纯讲速度有什么意义呢?Java的速度绝对算不上高,论速度的话好多技术方案的速度都比Java高,这一点学Java的人最清楚了,可是谁在乎过这一点了?Java的胜出绝对不是因为它的速度。抛开具体的应用环境单纯地讲速度是不理性的。

    有人讲ASP这个不能做,那个做不了,功能很局限。其实只要你明白Web的原理的话你就会明白,写ASP程序表面看是在玩一种脚本语言, (更多…)

  • 用GetString让ASP速度倍增

    许多ASP程序员都有过执行数据库查询,然后将查询结果用HTML表格的形式显示出来的经历。通常我们应该是这么做的: 

    <%
    ‘Create connection / recordset
    ‘Populate data into recordset object
    %>
    <TABLE>
    <% Do While not rs.EOF %>
    <TR>
    <TD ><%=rs(“Field1”)% ></TD>
    <TD ><%=rs(“Field2”)% ></TD>
    .
    </TR>
    <% rs.MoveNext
    Loop %>
    </TABLE>

    如果查询结果很多,服务器解释你的ASP script将花费大量的时间,因为有许多的Response.Write语句要处理. 如果你将输出的全部结果放在一个很长的字符串里(从<TABLE >到</TABLE >),那么服务器只需解释一遍Response.Write语句,速度就会快得多 . 微软公司里的一些能干的家伙已经将想法变成了现实. (注意,这是一个ADO 2.0以上才有 的特性. 如果你还在使用以前版本的话,请升级到最新版) (更多…)

  • asp读取XML

    ASP文件: 
     程序代码

    
    
    read xml
    
    
    第  条记录:
    
    书名 出版社 价格

    XML文件《data.xml》: 
     程序代码

    
    
    48
    Dreamweaver
    上海科技出版社
    img/dw.jpg
    
    
    61
    Flash
    铁道出版社
    img/flash.jpg
    
    
    48
    Firweorks
    教育出版社
    img/fw.jpg
    
    

    ==========================
    js读取::
     程序代码

    var source=   new   ActiveXObject('Microsoft.XMLDOM');   //创建一个MSXML解析器实例   
    source.async=false;   
    source.load("xml.xml")        //载入xml文档。
    nodes = source.documentElement;
    var ItemN = source.documentElement;       //设置文档元素为根节点元素 
    var j = ItemN.length;//获取item节点个数
    
    var array1=new Array();
    var array2=new Array();
    var array3=new Array();
    for(i=0;i<j;i++)
    {
    array1[i]=ItemN[i].selectSingleNode("name").text;//获取name内容
    array2[i] = ItemN[i].selectSingleNode("publisher").text;//获取publisher内容
    array3[i] = ItemN[i].selectSingleNode("img").text;//获取img内容
    }
  • GetRows() 提取大批量数据

    现有10W条数据,Access数据库保存

    通过正常提取:
     程序代码
    <%
    Set conn= Server.CreateObject("ADODB.Connection")
    connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("db2.mdb")
    conn.Open connstr

    Set rs = Server.CreateObject ("ADODB.Recordset")
    sql = "Select * from people order by id desc"
    rs.Open sql,conn,1,1

    Do While Not rs.EOF
        Response.write rs("id")&" | "
        rs.MoveNext
    Loop
    %>

    http://myhhe.cn/test/getrows/show1.asp 
    耗时3,250.000毫秒,总测试平均值在3秒左右

    使用存储过程提取:
     程序代码
    <%
    Set conn = Server.CreateObject("ADODB.Connection")
    Set cmd = Server.CreateObject("ADODB.Command")
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db2.mdb")

    cmd.ActiveConnection = conn
    cmd.CommandText = "Select * from people order by id desc"
    Set rs = cmd.Execute

    Do While Not rs.EOF
    Response.write rs("id")&" | "
    rs.MoveNext
    Loop
    %>

    http://myhhe.cn/test/getrows/show2.asp 
    耗时2,187.500毫秒,总测试平均值在2秒左右

    以上两种均不能彻底解决执行时间漫长的问题,主要原因即是循环每次都须向数据库抽取记录(Command速度相对较快)

    那么使用GetRows()方法呢:
     程序代码
    <%
    Set conn = Server.CreateObject("ADODB.Connection")
    Set cmd = Server.CreateObject("ADODB.Command")

    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db2.mdb")
    cmd.ActiveConnection = conn
    cmd.CommandText = "Select * from people order by id desc"
    Set rs = cmd.Execute
    rsArray = rs.GetRows()

    For i = 0 To UBound(rsArray, 2)
    Response.Write rsArray(0, i)&" | "
    Next
    %>

    http://myhhe.cn/test/getrows/show3.asp 
    耗时187.500毫秒,总测试平均值在0.2秒左右

    GetRows()方法是将数据从 Recordset 复制到二维数组中,这是一个二维数组,第一个下标标识字段,第二个则标识记录号

    所以rsArray = rs.GetRows()
    rsArray(0, 0)就表示记录集第一行的第一字段值
    rsArray(1, 0)就表示记录集第一行的第二字段值

    数组的数据是保存在内存中的,这就从根本上解决了每次显示记录还需向数据库请求的麻烦。

    另外,关于GetRows()的详细介绍和用法,这里有份内容参考

    http://www.51windows.net/pages/Ado/mdmthgetrows.htm 

    http://www.blueidea.com/tech/program/2005/2853.asp

  • [ASP]GetRows的用法详解!

    大家应该都知道 Recordset 有个 GetRows 属性,但是真正使用的不多,我也是最近才用的!汗……

    其实这个属性很简单,就是把数据集输出到一个数组中。但是实用性可不小,在这里我举一个例子说明一下GetRows的使用方法,大家举一反三能想到更多的用法!

    比如一个分类的表 T_Cate,结构和数据如下:

    ID   |   Title   |  Intro
    —————————————–
    1    |   新闻   |  这里是新闻
    2    |   教程   |  这里是教程
    3    |   下载   |  这里是下载

    好了,表建立好了,数据也有了,下面我们就要用到GetRows咯! 

    Dim Rs_Cate
    Dim Arr_Cate
    Set Rs_Cate=Conn.ExeCute("SELECT ID,Title,Intro FROM T_Cate ORDER BY ID ASC")
    Arr_Cate=Rs_Cate.GetRows
    Set Rs_Cate=Nothing

    好了表数据已经导出到数组了!下面我们将遍历这个数组

    Dim Arr_CateNumS,Arr_CateNumI
    Arr_CateNumS=Ubound(Arr_Cate,2)  '得到数组中数据的下标
    For Arr_CateNumI=0 To Arr_CateNumS
        Response.Write("ID:"&Arr_Cate(0,Arr_CateNumI)&" | 标题:"&Arr_Cate(1,Arr_CateNumI)&" | 介绍:"&Arr_Cate(2,Arr_CateNumI)&"<br>")
    Next

    呵呵,好了,输出的数据为:
    ID:1 | 标题:新闻 | 介绍:这里是新闻
    ID:2 | 标题:教程 | 介绍:这里是教程
    ID:3 | 标题:下载 | 介绍:这里是下载

    好了,具体就写这么多吧!文采不行,如果大家有什么不明白的,多用用就可以了,呵呵

  • 一段经典的AJAX代码

    function posts(id){
        var xmlhttp;
        try{
            xmlhttp=new XMLHttpRequest();
            }
        catch(e){
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
        xmlhttp.onreadystatechange=function(){
        if (xmlhttp.readyState==4){
            if (xmlhttp.status==200){
                var data=xmlhttp.responseText;

                result(data);    
                }
            else{
                //提交失败
                }
            }
        else{
            //提交中
            }
        }
        var BaseURL="text.asp"
        var url = BaseURL + "?timeStamp=" + new Date().getTime();
        xmlhttp.open("post", url, true);
        xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded; charset=gb2312');
        xmlhttp.send("id="+escape(id));    
    }
    function Colsid_result(data){
        
        var pronames
        var data_arr
        if(data!="0"){
            //信息返回成功,
            alert(data);
        }else{
            //信息返回为0
        }
    }

  • asp动态include文件

    受<! #include file="filename.asp" –> 宏限制 
    必须存在该文件并且会预先编译(不管前面是否加以条件) ,他总在运行ASP里的程序前先编译,所以无法用if XXX then <! #include file="filename.asp" –>  这种方法随意include文件了

    经常有这样的要求,根据不同的需求要求include不同的文件 
    如各个人的不同设置,所以要求能动态include文件。 
    这里的方法其实原理很简单,就是用FSO把文件读出来,然后 execute运行他,不过这却是很精典的代码了
    代码如下: 

     引用内容

    Function include(filename) 
    Dim re,content,fso,f,aspStart,aspEnd 

    set fso=CreateObject("Scripting.FileSystemObject") 
    set f=fso.OpenTextFile(server.mappath(filename)) 
    content=f.ReadAll 
    f.close 
    set f=nothing 
    set fso=nothing 

    set re=new RegExp 
    re.pattern="^s*=" 
    aspEnd=1 
    aspStart=inStr(aspEnd,content,"<%")+2 
    do while aspStart>aspEnd+1 
    Response.write Mid(content,aspEnd,aspStart-aspEnd-2) 
    aspEnd=inStr(aspStart,content,"%>")+2 
    Execute(re.replace(Mid(content,aspStart,aspEnd-aspStart-2),"Response.Write ")) 
    aspStart=inStr(aspEnd,content,"<%")+2 
    loop 
    Response.write Mid(content,aspEnd) 
    set re=nothing 
    End Function 

    使用范例: 
     引用内容
    include("youinc.asp")

  • 一声叹息

    作者:stone 
    今天天气不好,三月里的又一次阴天。

     看着窗外的昏暗,心里不由得压抑起来,一种令人窒息的感觉,弥漫在空气里。

     天气能左右人的心情,就好象月亮能掌握潮汐一样,感觉怪怪的。只希望这恼人的乌云能早点散去,或者将蓄谋以久的阴雨统统释放出来——人同样需要释放。

     在如此的压抑氛围中,人不觉得伤感起来,一切煽情的思绪如洪水般涌过脑海。重新拾起的记忆仿佛年幼的小孩找到神话中的宝藏一样,充满神秘、好奇与恐惧。

     茫然间,脑袋中闪出一股念头——人活的好累呀!也许这是上帝或佛主早已经给我设计好的路,我只能按照他们的意图活下去,反抗、改变是不可能的,在命运面前我只能选择顺从。

     人真的很难做,处事、处人都很讲究,人跟人是不一样的,每个人都有自己的个性、性格,这使人都不得不带着一副面具,如果你尝试将他摘下来,你会被这个社会毁容。唯一要谨记的就是“不要看不起别人,也不要看不起自己”,这是避免狂妄与自卑的良言。

     昨天跟朋友出去吃饭,聊到了在大学里的朋友,感慨万千。回想在大学的日子里,我要感谢的人很多,因为我交到了很多的好朋友,我当他们是我最好的朋友,我相信他们也会有同样的感觉。

     因为职务的关系,在大学里有些事情,普通同学可以做,我不能;有些话普通同学可以说,我不能;而且他们还要时刻面临着我的召唤去干活,每次他们都支持我的工作,这使我十分感激。

     我感谢同学们对我的支持与帮助,我感觉大学的时光是我一生的财富,因为我结识了在大学中值得认识的朋友:各分院的主席、学生干部,院里各学生组织的学生领袖,以及身边支持我帮助过我的人。与他们在一起,总是其乐融融、欢声笑语,这使我不禁感慨“人活一辈子,不上一次大学真的很可惜!”。

     其实我很对不起一些人,就是我的手下。我觉得我的手下都是最优秀的,这也是最值得我骄傲的,我认为只要有他们在,我们简直是无所不能的。他们很尊重我,总是捧我、支持我,我很感激。无论是院学生会、系学生会、协会、学社联、伙委会等等组织里,我相信他们付出的比我还要多。只是我一直没有机会去慰问他们,尤其是在伙委会工作的同学们,他们每天中午都要跑到食堂工作,永远是最后一个吃饭,最后一个回到教室,我忙得没有时间去看看他们。我的两个手下(食堂负责人)很理解我,在管理学生食堂工作上从未让我操过心,使我对她们很放心。

     天空放晴了些,心情也跟着晴朗起来。

     最后要释放的是对于情感的感触。

     好女孩真的很多,只是我错过了一个又一个。因为工作的关系,我结识了很多优秀的女孩,只是我不善于把握,也许女孩们总是等得不耐烦了吧。我很想约她们出来,然而不知道什么原因,我总是没有时间,也许有些人会觉得很奇怪,我能忙到连这点时间都没有吗?我想恐怕是这样,我也不知道。我只感觉我的时间不够用,狠不得把时间分成几份使;也许在我内心深处我还没做好寻找另一半的准备吧。

     “出现的人不喜欢,喜欢的人不出现”,也许这句话表达的最贴切。我不知道什么是我最喜欢的,我只能任凭一个又一个优秀的女孩从我的生命中经过,我想我已经麻木了。如果有合适的人就把她留住吧,这是我要告诉大家的,只是我还不想考虑这方面的事情。以前认识的一些女孩,现在都已有了男朋友。男人、女人;友情、爱情,仿佛两者之间只隔了一张纸,只是这纸薄薄的、透明得人们很难琢磨。

     感情总是琢磨不定的,我想我应该是属于笨拙的那种人吧,我只适合被人爱,而不适合去爱别人。春天会来的,我有种预感,只希望相对于我的人生,她不要来得太迟就好。

     2006.3.10  与ASP课堂(快下课了,我的作业她也给我做完了,今天又将是忙碌的一天-_-  生活还要继续,期待着奇迹出现…)