| 微软建议的ASP性能优化28条守则---[15] 批处理内嵌脚本和 Response.Write 语句 |
|
微软建议的ASP性能优化28条守则---[15] 批处理内嵌脚本和 Response.Write 语句 |
| 作者:佚名 来源:pharaohsprince 更新:2006-8-25 21:05:35 错误报告 我要投稿 |
|
技巧 15:批处理内嵌脚本和 Response.Write 语句 VBScript 语法 <% = expression %> 将“expression”的值写到 ASP 输出流中。如果响应缓冲未启用,那么执行其中的每一条语句,都会以许多小的数据包通过网络将数据写到浏览器中。这样速度很慢。而且穿插执行少量的脚本和 HTML,将引起脚本引擎和 HTML 之间的切换,从而降低性能。因此,使用下面的技巧:使用 Response.Write 调用代替捆绑紧密的内嵌表达式。例如,在下面的示例中,在每一行的每一字段对响应流有一次写操作,每一行在 VBScript 和 HTML 之间有许多切换:
<table> <% For Each fld in rs.Fields %> <th><% = fld.Name %></th> <% Next While Not rs.EOF %> <tr> <% For Each fld in rs.Fields %> <td><% = fld.Value %></td> <% Next </tr> <% rs.MoveNext Wend %> </table>
下面的代码更有效,每一行对响应流有一次写操作。所有的代码都包含在一个 VBScript 块内:
<table> <% For each fld in rs.Fields Response.Write (?<th>? & fld.Name & ?</th>? & vbCrLf) Next While Not rs.EOF Response.Write (?<tr>?) For Each fld in rs.Fields %> Response.Write(?<td>? & fld.Value & ?</td>? & vbCrLf) Next Response.Write ?</tr>? Wend %> </table>
当禁用响应缓冲时,这一技巧的效果特别大。最好启用响应缓冲,然后看批处理 Response.Write 是否有助于提高性能。
(在这一特定举例中,建立表主体的嵌套循环 (While Not rs.EOF...) 可以用仔细构建的 GetString 调用来替代。)
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |