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

(0)

相关推荐

  • ASP提速技巧 推荐

    技巧之一:提高使用Request集合的效率 访问一个ASP集合来提取一个值是费时的.占用计算资源的过程.因为这个操作包含了一系列对相关集合的搜索,这比访问一个局部变量要慢得多.因此,如果打算在页面中多次使用Request集合中的一个值,应该考虑将其存贮为一个局部变量.例如将代码写成下面的形式以加快脚本引擎处理速度: strTitle=Request.Form("Title")  strFirstName=Request.Form("FirstName")   str

  • ASP提速五大技巧

    技巧之一:提高使用Request集合的效率 访问一个ASP集合来提取一个值是费时的.占用计算资源的过程.因为这个操作包含了一系列对相关集合的搜索,这比访问一个局部变量要慢得多.因此,如果打算在页面中多次使用Request集合中的一个值,应该考虑将其存贮为一个局部变量.例如将代码写成下面的形式以加快脚本引擎处理速度: strTitle=Request.Form("Title") strFirstName=Request.Form("FirstName") strLas

  • 分享5个python提速技巧,速度瞬间提上来了

    目录 1.跳过迭代对象的开头 2.避免数据复制 3.避免变量中间变量 4.循环优化 5.使用numba.jit 1.跳过迭代对象的开头 string_from_file = """   // Wooden: ...   // LaoLi: ...   //   // Whole: ...   Wooden LaoLi...   """  import itertools   for line in itertools.dropwhile(lamb

  • 基于ios逆向过程中lldb调试技巧(推荐)

    假如你准备在模拟器里面运行这个,你可以在"(lldb)"提示的后面输入下面的: (lldb) po $eax LLDB在xcode4.3或者之后的版本里面是默认的调试器.假如你正在使用老一点版本的xcode的话,你又GDB调试器.他们有一些基本的相同的命令,因此假如你的xcode使用的是"(gdb)"提示,而不是"(lldb)"提示的话,你也能够更随一起做,而没有问题. "po"命令是"print object&qu

  • Javascript字符串拼接小技巧(推荐)

    在Javascript中经常会遇到字符串的问题,但是如果要拼接的字符串过长就比较麻烦了. 如果是在一行的,可读性差不说,如果要换行的,会直接报错. 在此介绍几种Javascript拼接字符串的技巧. 字符串相加(+) var items = '<li class="details">' + '<span>Hello world</span>' + '</li>'; 利用反斜线拼接字符串 var items = '<li class=

  • jQuery使用经验小技巧(推荐)

    在开发过很多 jQuery 插件以后,我慢慢的摸索出了一套开发jQuery插件比较标准的结构和模式.这样我就可以复制并粘贴大部分的代码结构,只要专注最主要的逻辑代码就行了. 使用相同的设计模式和架构也让修复bug或者二次开发更容易.一套经过验证的架构可以保证我的插件不出大的问题,不论插件简单还是复杂.我在这里分享10条我总结的经验. 1. 把你的代码全部放在闭包里面 这是我用的最多的一条.但是有时候在闭包外面的方法会不能调用.不过你的插件的代码只为你自己的插件服务,所以不存在这个问题,你可以把所

  • 全网首秀之Pycharm十大实用技巧(推荐)

    PyCharm 应该是大多数 python 开发者的首选 IDE,每天我们都在上面敲着熟悉的代码,写出一个又一个奇妙的功能.它是帮助用户在使用 Python 语言开发时提高其效率的工具,但是好多人只是把它当做一个文本编辑器使用,并没有发挥出它的优势,今天我来分享一下日常开发用到的一些技巧吧. 1.自动生成导入 您正在编写代码,想导入一个包,只记得包名,但是忘了它在那个py文件了,可以通过 pycharm 自动导入.当你写了一个包名,pycharm会有提示是否需要导入,选择后将根据您的项目样式以正

  • 常用Shell命令集合和使用技巧(推荐)

    一.控制台使用技巧 基于我平时的工作经验,总结出一些我常用的快捷键 1.1 操作快捷键 Ctrl+r:可以快速查找历史命令 Ctrl+a / Ctrl+e:移动光标到命令行首 / 行尾 Ctrl+w / Ctrl+k:删除光标之前 / 之后的内容 1.2 VIM文件编辑快捷键 ZZ:文件保存并退出 1.3 进程操作快捷键 Ctrl+c:强制终止程序 Ctrl+z:挂起一个进程 Ctrl+d: 终端输入exit后回车 1.4 linux命令中快捷键(top) Shift + p: 根据CPU使用率

  • 详解IDEA 中使用Maven创建项目常见错误和使用技巧(推荐)

    使用idea的运行程序时,出现jar包不存在的错误(pom.xml文件中有依赖,而且代码没有红色的). 解决方法:Maven安装目录下的conf文件下的setting.xml文件中不要加入本地仓库路径设置,直接在idea中设置. tomcat启动maven项目出现jar包不存在的错误.解决方法:在pom.xml文件中加上war maven依赖下载速度太慢.解决方法:在maven安装目录下的conf文件下的setting.xml中,设置阿里云的镜像仓库地址. <mirror> <id>

  • postgresql 中的时间处理小技巧(推荐)

    时间格式处理 按照给定格式返回:to_char(timestamp,format) 返回相差的天数:(date(time1) - current_date) 返回时间戳对应的的日期[yyyy-MM-dd]:date(timestamp) 计算结果取两位小数(方便条件筛选):round((ABS(a-b)::numeric / a), 2) * 100 < 10 时间运算 加减运算 '-' :前x天/月/年 '+' :后x天/月/年 current_timestamp - interval 'x

随机推荐