分享
 
 
 

ASP讲座之十一:结束语——给您一些建议

王朝asp·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

一、 有关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)等等……,如果有机会,以后大家还可在这里见面,这一次,再见!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有