改进性能和样式的24个ASP 技巧(14)


AspQueueConnectionTestTime
设置,调整这 3 秒的超时时间。

如果有某页执行了很长时间,您可能还想按一定的时间间隔检查
Response.IsClientConnected
。在启用响应缓冲之后,按一定的时间间隔执行
Response.Flush
,告诉用户正在进行的是哪些事情,是个好办法。

注意 在 IIS 4.0 中,
Response.IsClientConnected
将不能正常工作,除非首先执行
Response.Write
。如果启用了缓冲,也需要执行
Response.Flush
。在 IIS 5.0 中则不必如此 -
Response.IsClientConnected
工作得很好。在任何情况下,
Response.IsClientConnected
都要有些开销,所以,只有在执行至少要用 500 毫秒(如果想维持每秒几十页的吞吐量,这是一个很长的时间了)的操作前才使用它。作为通常的规则,不要在紧密循环的每次迭代中调用它,例如当绘制表中的行,可能每 20 行或每 50 行调用一次。

技巧 17:使用 <OBJECT> 标记实例化对象

如果需要引用不能在所有代码路径中使用的对象(尤其是服务器 - 或应用程序 - 作用域的对象),则使用 Global.asa 中的
<object runat=server id=objname>
标记来声明它们,而不是使用
Server.createObject
方法。
Server.createObject
立刻创建对象。如果以后不使用那个对象,就不要浪费资源。
<object id=objname>
标记声明了 objname,但实际上 objname 此时并没有创建,直到它的方法或属性第一次被使用时才创建。

这是迟缓计算的另一个例子。

技巧 18:使用 ADO 对象和其他组件的 TypeLib 声明

当使用 ADO 时,开发人员经常包含
adovbs.txt
来获得对 ADO 不同常量的访问权。该文件必须包含在要使用这些常量的每一页中。该常量文件非常大,给每个 ASP 页增加了很多编译时间和脚本大小方面的开销。

IIS 5.0 提供了绑定到组件类型库的能力。允许您在每个 ASP 页上引用一次类型库并使用它。每页不需要为编译常量文件付出代价,并且组件开发人员不必为在 ASP 中的使用而生成 VBScript #include 文件。

要访问 ADO 类型库,请将下列语句之一放入 Global.asa 中。

<!-- METADATA NAME="Microsoft ActiveX Data Objects 2.5 Library"
TYPE="TypeLib" UUID="{00000205-0000-0010-8000-00AA006D2EA4}" -->

或者

<!-- METADATA TYPE="TypeLib"
FILE="C:\Program Files\Common Files\system\ado\msado15.dll" -->

技巧 19:利用浏览器的验证能力

流行的浏览器具有对以下功能的高级支持,例如 XML、DHTML、Java 小程序以及远程数据服务。请尽量利用这些功能。所有这些技术,都可以通过执行客户端的验证和数据缓存,减少了与 Web 服务器之间的往返。如果您正在运行智能浏览器,该浏览器可以为您进行一些验证(例如,在运行 POST 之前检查信用卡的校验和否有效)。重申一次,请尽量使用这些功能。由于削减了客户端到服务器的往返路程,将减少对 Web 服务器的压力,并且削减了网络通信量(虽然发送给浏览器的初始页面可能更大),服务器访问的所有后端资源也削减了。而且用户不必经常提取新页,使用户的感受好一些。这并不减轻对服务器端验证的需要。还是应该经常进行服务器端的验证。这样能够防止由于某些原因从客户端来的坏数据,例如黑客,或者不运行客户端验证程序的浏览器。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3230.html