ASP 五大高效提速技巧

来源:互联网 发布:ubuntu 安装pip出错 编辑:程序博客网 时间:2024/05/01 22:18
  ASP 五大高效提速技巧   [ 2005-06-10 10:19:23 ] 欢迎来访 看看读读
借鉴前辈的理论 充实丰富自己 ·终于来了!中国MSN服务全面启动 ·又遭泄漏,腾讯QQ2005 beta2曝光 ·10秒钟完成开机画面变脸! ·计算机锁定秘技:我的U盘变密钥 ·能和ACDSee一比高下的千千浏览 ·没有邀请也申请Gmail邮箱 ·Java咖啡馆:情人节的Applet ·Flash手绘一副帅气眼镜 ·商业三维动画短片制作流程揭秘 ·Photoshop消除照片中的黑眼圈
·盗版换正版,微软的免费午餐? ·新闻一周谈:微软发动"星球大战" ·终于来了!中国MSN服务全面启动 ·又遭泄漏,腾讯QQ2005 beta2曝光 ·10秒钟完成开机画面变脸! ·计算机锁定秘技:我的U盘变密钥 ·能和ACDSee一比高下的千千浏览 ·没有邀请也申请Gmail邮箱 ·Java咖啡馆:情人节的Applet ·Flash手绘一副帅气眼镜 ·商业三维动画短片制作流程揭秘 ·Photoshop消除照片中的黑眼圈
技巧之一:提高使用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")
  While Not rsGc.EOF Response.Write "工程名称:" & GcMc & "(工程代码:" & GcCode & ")
  " RsGc.MoveNext
  Wend



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

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

  我们知道,ASP页面中既可以使用VBScript,也可以使用JScript。但是在同一个页面上同时使用JScript和VBScript则是不可取的。因为服务器必须实例化并尝试缓存两个(而不是一个)脚本引擎,这在一定程度上增加了系统负担。因此,从性能上考虑,不应在同一页面中混用多种脚本引擎。
国内最大的培训课程库,培训课程一目了然,快速搜索即时报名!

 
只读评论 评论人 评论共12条 查看完整内容 顺序查看 我的最近评论 发表时间 12
sa 回复 5 楼(我不乖): 06-30 15:06 11
wangzhiping 首先你要有一本好的书,然后自己多写几个例子就可以了. 07-18 18:00 10
阿猫 我有一群,群号:22785253望对ASP,JSP,PHP有爱好的人加入,同时还有专门的论坛用于讨论 05-24 11:00 9
阿猫 回复 8 楼(寂静)我有一群,群号:22785253望对ASP,JSP,PHP有爱好的人加入,同时还有专门的论坛用于讨论! 05-24 10:58 8
寂静 回复 4 楼(marge):多做! 04-10 20:18 7
我不乖 回复 6 楼(我不乖): 12-26 09:58 6
我不乖 我现在要实习做个动态网站,可是我一点思路也没有哪位能给我点提示,谢谢! 12-26 09:51 5
我不乖 我现在要实习做个动态网站,可是我一点思路也没有哪位能给我点提示,谢谢! 12-26 09:51 4
marge asp我很想学好它,但我却不知道该怎么来学好她!! 11-19 13:51 3
cainiao 回复 2 楼(汁):我刚刚开始学习ASP,能有快速的途径吗 10-09 18:57 2
大家好.我建立了一个ASP群.你可以加入.让我们一起来学习.群号是:11554694 09-13 14:08  
《编程开发语言》近期热评文章:       查看全部...
原创粉丝点击