当前位置:首页 > 电脑网络 > 5大技巧帮你实现Asp提速执行
Dec14th

5大技巧帮你实现Asp提速执行

diyidu 电脑网络 1 人阅读了此文 我来说两句!

    技巧1:提高使用Request集合的效率

    访问一个Asp集合来提取一个值是很费时的,占用计算资源的过程。因为这个操作包含了一系列对相关集合的搜索,这比访问一个局部变量要慢很多。因此,如果你打算在页面中多次使用Request集合中的一个值,应该考虑将其存贮为一个局部变量。例如,将代码写成下面的形式以加快脚本引擎处理的速度:

strTitle=Request.Form("Title")
strFirstName=Request.Form("FirstName") 
strLastName=Request.Form("LastName") 
If Len(strTitle) Then strTitle=strTitle & " " 
If strFirstName="" Then strFullName=strTitle & " " & strLastName 
Elseif Len(strFirstName)=1 Then
strFullName=strTitle & strFirstName & ". " & strLastName
Else
strFullName=strTitle & strFirstName & " " & strLastName 
End If

    技巧2:直接访问适当的集合

    如果不是别无选择,不要使用strPage=Request("page")的这样的形式来获取参数,因为这将按顺序搜索全部的集合——QueryString、Form、Cookies、ClientCertificate、ServerVarible直到发现第一个匹配值的名称。这样做比直接访问适当的集合效率要低,并且很不安全,除非能绝对保证这个值不会出现在另外一个集合中。例如,你可能希望搜索满足客户请求的Web服务器名称,这通过出现在每个查询中的Request.ServerVarables集合中寻找“SERVER_NAME”来实现。然而,假如其他的集合也包含着名为“SERVER_NAME”的值(键名不区分大小写),当使用Request("server_Name")时,就会得到错误的结果。总而言之,应尽可能直接访问适当的集合。

    技巧3:在费时操作前使用Response.IsClientConnected属性

    使用Response.IsClientConnected是观察用户是否仍连到服务器并正在载入Asp创建的网页的有用方式。如果用户断开连接或停止下载,我们就不用再浪费服务器资源为其创建网页了,因为缓冲区内容将被IIS丢弃。所以,对那些需要大量时间计算或资源使用较多的网页来说,值得在每一阶段都检查游览者是否已经离线:

…… Code to create first part of the page
If Response.IsClientConnected Then
Response.Flush
Else
Response.End
End If
…… Code to create next part of page

    技巧4:优化Asp中的Ado操作

    通常而言,数据构成了Web站点的实际内容。所以,优化Ado操作以加速Asp代码执行,十分有用:1.仅选择所需的列——当打开Ado记录集时,除非需要获得所有的列,否则不应自动地使用表名(即Select*)。使用单独的列意味着将减少发送到服务器或从服务器取出的数据量。即使需要使用全部列,单独地命名每个列也会获得较佳的性能,因为服务器不必再解释这些列的名字。2.尽可能地使用存储过程。存储过程是预先编译的程序,含有一个已经准备好的执行计划,所以比Sql语句执行效率更高,速度更快。3.使用适当的光标和锁定模式。如果所做的全部工作只是从记录集中读取数据,并将其显示在屏幕上,那么就使用缺省的只能前移、只读的记录集。Ado用来维护记录和锁定的细节的工作越少,执行的性能就越高。4.使用对象变量。当遍历记录集时,一个肯定能提高性能的方法是使用对象变量指向集合中的成员。例如:

While Not RsGc.EOF
Response.Write "工程名称:" & RsGc("GcMC") & "(工程代码:" & RsGc("GcCode") & ") " 
RsGc.MoveNext
Wend

    可以改写为下面的代码以加快执行:

set GcMc=RsGc("GcMc")
set GcCode=RsGc("GcCode") 
While Not rsGc.EOF Response.Write "工程名称:" & GcMc & "(工程代码:" & GcCode & ")
" RsGc.MoveNext 
Wend

    新的代码建立了对象变量的引用,所以可以使用对象变量而不是实际的变量,这意味着脚本引擎的工作减少了,因为在集合中进行索引的次数变少了。

    技巧5:不要混用脚本引擎

    Asp页面中既可以使用VBScript,也可以使用JScript。但在同一个页面上,同时使用JScript和VBScript则是不可取的。因为服务器必须实例化并尝试缓存两个(而不是一个)脚本引擎,这在一定程度上增加了系统负担。因此,从性能上考虑,不应在同一页面中混用多种脚本引擎。

本文转载自网络,作者不详。

本文出自:低一度,地址:http://www.diyidu.cn/post/asp_tisutips.html,转载须注明!

to "5大技巧帮你实现Asp提速执行" 引用该日志!

  1. liuzm
    #1 liuzm 回复该留言 2009-12-14 16:33:55

    ASP,已经OUT了。哈哈!

    diyidu 于 2009-12-14 16:44:07 回复
    风水轮流坐,Asp的确遇到了瓶颈,但没这么快消亡。
    stone 于 2009-12-17 15:30:03 回复
    我觉得out还谈不上,虽然自己用了好几年的ASP,最近也转向了PHP,再回头看,其实在中国,ASP真正out还要过一段时间。
    虾虾 于 2010-1-10 20:35:03 回复
    中国的企业站大部分用的还是ASP的

此楼已盖到第1层了,目前尚未封顶!