二十八条改善 ASP 性能和外观的技巧(15-21)

作者:袖梨 2022-07-02
技巧 15:批处理内嵌脚本和 Response.Write 语句
技巧 16:如果页面需要很长时间才能完成,那么执行前使用 Response.IsClientConnected
技巧 17:使用 标记例示对象
技巧 18:对于 ADO 和其它组件使用 TypeLib 绑定
技巧 19:利用浏览器的验证功能
技巧 20:避免在循环语句中使用字符串串联
技巧 21:启用浏览器和代理缓存
技巧 15:批处理内嵌脚本和 Response.Write 语句
VBScript 语法 <% = expression %> 将“expression”的值写到 ASP 输出流中。如果响应缓冲未启用,那么执行其中的每一条语句,都会以许多小的数据包通过网络将数据写到浏览器中。这样速度很慢。而且穿插执行少量的脚本和 HTML,将引起脚本引擎和 HTML 之间的切换,从而降低性能。因此,使用下面的技巧:使用 Response.Write 调用代替捆绑紧密的内嵌表达式。例如,在下面的示例中,在每一行的每一字段对响应流有一次写操作,每一行在 VBScript 和 HTML 之间有许多切换:

<% For Each fld in rs.Fields %>

<%
Next
While Not rs.EOF
%>

<% For Each fld in rs.Fields %>

<% Next

<% rs.MoveNext
Wend %>
<% = fld.Name %>
<% = fld.Value %>

下面的代码更有效,每一行对响应流有一次写操作。所有的代码都包含在一个 VBScript 块内:

<%
For each fld in rs.Fields
Response.Write (?? & vbCrLf)
Next
While Not rs.EOF
Response.Write (??)
For Each fld in rs.Fields %>
Response.Write(?? & vbCrLf)
Next
Response.Write ??
Wend
%>
? & fld.Name & ?
? & fld.Value & ?

当禁用响应缓冲时,这一技巧的效果特别大。最好启用响应缓冲,然后看批处理 Response.Write 是否有助于提高性能。
(在这一特定举例中,建立表主体的嵌套循环 (While Not rs.EOF...) 可以用仔细构建的 GetString 调用来替代。)
技巧 16:如果页面需要很长时间才能完成,那么执行前使用 Response.IsClientConnected

相关文章

精彩推荐

一聚教程网

Copyright © 2010-2022

111cn.net All Rights Reserved