一、 有关ASP页面及代码的优化
1.尽量用!--#include file指令替代框架结构。
以前比较流行的一种设计模式就是使用一个框架(Frame)放置网站的目录结构,在另外的框架中显示内容,这样的设计思路是必不可少的,但却会影响到网站性能。在具体实现方式上,完全可使用!--#include file指令来设计一个导航条,至于include的使用,早在讲座一中就已经举例说明。
2.尽量不要让来访者在毫无变化的等待中消磨时光。
不要使用这样的方式,先进行处理,然后再将处理结果输出到页面,造成在处理的这段时间内,客户端页面没有任何变化。一个再有耐心的人也会因此而感到无比懊恼,应该尽量采用边处理,边输出的方式。其实我们在讲座八中介绍的分页显示技术就是这个道理,下面再举一个例子。
代码一(先处理后显示):
<% while not rs.eof %><%=rs(“name”)%> <%=rs(“email”)%>
<% rs.movenext
wend %>
代码二(边处理边显示,处理一条,显示一条):
<% while not rs.eof %><%=rs(“name”)%> <%=rs(“name”)%>
<% rs.movenext
wend %>
3.避免使用Session变量,尤其是在页面之间使用Session变量。
使用会话变量会降低效率,原因在于不仅需要为每位访问者创建一个变量,而且直到访问者离开20分钟后(默认Timeout设置),会话变量所占内存才会被释放。
4.不要盲目使用数据库。
初学者往往对数据库有所心得之后,动不动便使用数据库,一来可以温故,二来展示一下自己的数据库技术。我的建议是可以用别的方法时最好少使用数据库,访问数据库总要消耗服务器资源。例如你可以使用文本文件,此外,对一些不大改变而又经常使用的数据,可使用Application对象将数据存放在数组变量中,从内存中获取数据要比从数据库中快得多。
5.使用Option Explicit强制声明变量。这可以提高ASP脚本执行效率,并且减少脚本出错的可能性,应该养成一个良好的习惯。
6.尽可能使用用Dim定义的局部变量。访问局部变量比访问全局变量或未声明的变量要快得多。
7.HTML代码和ASP代码最好不要频繁交叉,尽量使ASP代码或HTML代码连成片,以提升脚本运行效率(这跟打游戏的道理差不多)。
如果你是在代码中的好几个地方用<%=...%>格式书写输出结果,那么考虑一下把这些结果合到一块,用一个Response.Write语句写出来,如讲座二中的例wuf9.asp。不要把HTML代码和VBScript脚本散布得太开,尽量写成成块的HTML和vbscript脚本。
8.适当使用绝对路径
如果可能的话尽量避免使用相对路径,而使用绝对路径。使用相对路径将需要IIS返回当前服务器路径,这就意味着对IIS的特殊请求造成执行速度低下。不过话说回来,慢是慢了点,然而使用相对路径可以大大增强程序的灵活性和可移植性,关键在于恰当的处理这对矛盾。
9.ASP脚本性能测试
你可以使用一些工具软件测试你的ASP脚本执行所花时间,尤其是觉得该脚本有问题时。这里提供几个,具体用法请看帮助。
(1) Microsoft的InetMonitor工具:用来监控和测试整个网站的处理能力。下载地址:http://www.microsoft.com/siteserver/site/DeployAdmin/InetMonitor.htm。
(2) Microsoft的Web Capacity AnalysisTool(WCAT)。包含在Microsoft BackOffice Resource Kit光盘中,或者也可以去Microsoft网站下载。