ASP程序的性能优化
第一章 使用服务器缓存
1. 使用application和session保存数据的技巧。
可以再程序启动或会话开始时将需要的数据赋值给application和session对象。使用这种方法只需要在global.asa文件的application_Onstart和session_OnStart函数中添加响应的赋值函数或语句即可。
再合适的条件下可以缓存ADO记录本身,但是需要注意:
l ADO记录必须时自由线程标记的
l 必须时已经断开的记录集
2. 在服务器硬盘上缓存数据
对于体积大,使用频率不是很高的数据,可以采用text和xml的方式将其缓存在硬盘上。对于单个页面来说,访问数据库的速度不一定不访问硬盘的速度慢多少,但是对于大量的页面来说,这样作就可以减少服务器对数据库的访问压力,同时对于数据库中的那些需要大量缓存的存储过程来说,更是一件优化的好方法。
Asp和com提供了几个基于磁盘缓冲的配置工具。Ado记录集的save()和open()函数就是负责保存和掉入磁盘上的记录集。另外一下一些组件也可以达到类似的功能:
l Scripting.FileSystemObject:用许创建、读写文件
l MSXML:Microsoft XML解析器,随Internet Explorer带来,支持和保存和装入XML文档
l Lookup Table对象:从磁盘掉入简单列表的很好选择。
3. 避免在application和session对象中缓存非轻快型组件
4. 不要在application或session对象中缓存数据库连接
5. 合理使用session对象
第二章 提高代码的执行效率
1. 使用Option explicit
在asp文件中使用<%OPTION EXPLICTI%>可以提高asp代码的执行效率。打开此项有助于识别没有定义的变量,使用没有定义的变量就会出现错误提示。
2. 避免重复定义数组
最好在一开始就作最坏的打算,对数组的长度进行充分的考虑,尽量避免使用redim
3. 使用dictionary对象
vbscript中提供的dictionary对象可提供快速查找和对任意代关键字数据存储功能。通过dictionary对象可以根据关键字存取数组中的各项数据,这样就可以找到内存中不连续的内容。但是注意,如果关键字在内存中是连续的话,在数组中的查找、存储数据会更快。
4. 避免在循环中使用字符串连接操作
首先是重复的连续字符串消耗二次方的时间;其次是运行的时间与计算的字段数量也是平方的关系。可以使用替换字符串连接为response.write或行内脚本<%=fl.value%>的方法来提高程序的性能。如果使用的是jscript,强烈建议使用“+=”操作,而不是s=s+str
第三章 优化服务器的工作
1. 多个response.write声明
如果是多个结果使用<%=…%>操作,可以考虑将数据使用response.write输出
2. 在可能的情况下,使用server.transfer替代resonse.redirect
Server.transfer是在服务器进行页面转向的内容,并将具体的内容发送给客户浏览器,而response.redircet则使客户机自己向服务器进行请求下一个页面的内容,所以增加了网络和客户机的负担。
3. 避免使用Server Variables
4. 使用<object>标志创建对象
使用server.createobject创建对象时,将立即生成一个对象,但有一些时候对象并没有使用,这样造成浪费,而使用<object>服务器并不真正的创建对象,只有当对象被使用时,对象才被创建。
5. 可能的情况下尽量使用绝对路径
6. 使用response.buffer
TCP/IP在发送大的数据包时要比发送大量的小数据包效率高
7. 在发送大量内容前使用Response.IsClientConnected来确定客户机是否连接
8. 调整web服务器
9. 即使升级,使用最新的版本产品
第四章 利用浏览器工作
使用客户端对表格进行表单的验证检查