全国客户专线:0668-2830390
首 页      域名注册      网站空间      企业邮局      托管/租用      网站建设      成功案例      网站推广      软件开发      建站知识      联系我们
网站建设 | 网页设计 | 电子商务 | 网络营销 | 建站问题 | 技术文摘
技术文摘
ASP性能优化-ASP提速技巧
信息类型:技术文摘   发布时间:2009-12-01 01:07:21
技巧之一:提高使用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  


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


技巧之三:在费时操作前使用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  


技巧之四:优化ASP中的ADO操作  
通常面言,数据构成了WEB站点的实际内容。所以,优化ADO操作以加速ASP代码执行,十分有用:  
a. 仅选择所需的列:当打开ADO记录集时,除非需要获得所有的列,否则不应自动地使用表名(即SELECT *)。使用单独的列意味着将减少发送到服务器或从服务器取出的数据量。即使需要使用全部列,单独地命名每个列也会获得最佳的性能,因为服务器不必再解释这些列的名字。  
b. 尽可能的使用存储过程。存储过程是预先编译的程序,含有一个已经准备好的执行计划,所以比SQL语句执行更快。  
c. 使用适当的光标和锁定模式。如果所做的全部工作只是从记录集中读取数据,并将其显示在屏幕上,那么就使用缺省的只能前移、只读的记录集。ADO用来维护记录和锁定的细节的工作越少,执行的性能就越高。  
d. 使用对象变量。当遍历记录集时一个肯定能提高性能的方法是使用对象变量指向集合中的成员。例如:  
While Not RsGc.EOF  
Response.Write "工程名称:" & RsGc("GcMC") & "(工程代码:" & RsGc("GcCode") & ")  
"  
RsGc.MoveNext  
Wend  
可以用改写为下面的代码以加快执行:  
set GcMc=RsGc("GcMc")  
set GcCode=RsGc("GcCode")
 
版权所有:茂名市易天网络科技有限公司 2006-2018 www.gdmmw.com
  电话 : 0668-2830390、13432977888   传真:0668-2830390   客服QQ:510208667
Email:gdmmw@163.com  MSN:gdmmw@hotmail.com
公司地址:广东省茂名市茂南开发区站南路金城三街1号201室  邮编:525000
ICP/ISP/SP/工商局注册号:440900000068129  信息产业部ICP备案号:粤ICP备13085593号

粤公网安备 44090202000104号


工商注册号
440900000068129
在线QQ客服咨询 关闭