选择显示字体大小

asp 五大高效提速技巧

技巧之一:提高使用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则是不可取的。因为服务器必须实例化并尝试缓存两个(而不是一个)脚本引擎,这在一定程度上增加了系统负担。因此,从性能上考虑,不应在同一页面中混用多种脚本引擎。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons