欢迎光临
我们一直在努力

ASP讲座之十一:结束语——给您一些建议-ASP教程,性能优化

建站超值云服务器,限时71元/月

一、 有关asp页面及代码的优化
1.尽量用!–#include file指令替代框架结构。
以前比较流行的一种设计模式就是使用一个框架(frame)放置网站的目录结构,在另外的框架中显示内容,这样的设计思路是必不可少的,但却会影响到网站性能。在具体实现方式上,完全可使用!–#include file指令来设计一个导航条,至于include的使用,早在讲座一中就已经举例说明。

2.尽量不要让来访者在毫无变化的等待中消磨时光。
不要使用这样的方式,先进行处理,然后再将处理结果输出到页面,造成在处理的这段时间内,客户端页面没有任何变化。一个再有耐心的人也会因此而感到无比懊恼,应该尽量采用边处理,边输出的方式。其实我们在讲座八中介绍的分页显示技术就是这个道理,下面再举一个例子。
代码一(先处理后显示):
<table width=”100”>
<% while not rs.eof %>
<tr>
<td><%=rs(“name”)%></td>
<td><%=rs(“email”)%></td>
</tr>
<% rs.movenext
wend %>
</table>
代码二(边处理边显示,处理一条,显示一条):
<% while not rs.eof %>
<table width=”100” border=0>
<tr>
<td><%=rs(“name”)%></td>
<td><%=rs(“name”)%></td>
</tr>
</table>
<% 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网站下载。
(3) softwing的asp profiling component,下载地址:http://www.softwing.com/iisdev/profiler/。

二、 有关数据库性能的优化
1.用直接将数据库绑定到ole db的驱动程序,而不通过odbc。关于这一点,详见讲座六。

2.尽量使用系统默认的游标(cursortype)和上锁(locktype)类型,尤其要避免使用动态游标。

3.适当使用存储过程存储过程比查询字符串的效率高,使用起来要方便得多,好处多多。

4.及时释放资源,例如尽早的释放对象、关闭连接等。

5.数据库性能测试
(1) 测试sql查询的速度,可以使用microsoft isql/w(microsoft sql server6.5)或microsoft query analyzer(microsoft sql server7.0),它们可显示执行的每个步骤及所需时间。
(2) microsoft sql server7.0的profiler,可以跟踪对数据库服务器上执行的查询的监控。例如,可以跟踪记录运行最慢的查询或是最经常导致数据库死锁的查询。

三、 另外几个问题
1.其他可选的asp开发平台
此前我们所讲的asp脚本均是在microsoft系列平台上创建的,除此以外,你还可以选择chili!asp来运行asp,它的突出优点是在windows nt和unix平台上均可以使用。主页地址:http://www.chilisoft.com/。

2.关于<% @language=vbscript%>
此前我们所遇到的所有asp脚本,开头第一行代码基本上都是<% @language = vbscript%>,这表明这一页的asp脚本所使用的脚本语言为vbscript,实际上,在asp中还可以使用jscript、perlscript等其他脚本语言。
在asp中,你可以设定整个web站点使用一种脚本语言(如vbscript,这也是iis的缺省设置),而对某一个特定页面使用另一种脚本语言(如jscript),甚至于对某一个页面的某一个函数使用另一种脚本语言。下面我们举一个实例:
(1) 如何设定整个web站点所使用的脚本语言。
运行ism(internet service manager)→右键击网站名,选择properties→选择home directory选项卡→单击configuration按钮→选择application configuration对话框中的app options选项卡→在default asp language文本框中输入vbscript或jscript即可。
(2) 例程wuf99.asp
<% @language = perlscript %>
<html>
<head><title>bye</title></head>
<body>
<%
  $response->write(
    sprintf( “ip address = %s”,
      $request->servervariables(
        “remote_addr” )->item ) );
%>

<script language=”jscript” runat=”server”>
function saybye()
{
response.write(“再见!”)
}
</script>

<script language=”vbscript” runat=”server”>
for i=1 to 3
saybye()
next
</script>

</body>
</html>
注意:你可以在asp中自由的使用vbsript或jscript,因为microsoft支持这两种(ie支持netscape的javascript,并将其发展为jscript,而netscape却不支持vbscript,这恐怕也是netscape先发后至,microsoft官司缠身的原因之一),但是要使用perlscript,必须另外安装perl脚本语言环境。推荐使用activeperl,在windows nt上安装非常方便,下载地址:http://www.newhua.com.cn/activeperl.htm。

3.一个不错的asp设计实例
网上有很多asp的实例,主要集中在留言本、聊天室、新闻发布和bbs等,这里向大家推荐一个用asp设计的bbs系统——free bbs,下载地址为:http://free_bbs.soim.net/。

到这里,asp系列讲座就要告一段落了,但仍然还有很多问题没有涉及,如windows2000与iis5.0、asp的安全问题以及其他一些与iis或nt有关的概念(windows dna、mts、msmq)等等……,如果有机会,以后大家还可在这里见面,这一次,再见!

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ASP讲座之十一:结束语——给您一些建议-ASP教程,性能优化
分享到: 更多 (0)