日期:2009-01-04  浏览次数:21274 次

RESPONSE.WRITE与<%=%>都是ASP程序向客户端输出字符串的方法,虽然两者的结果相同但是其效果是不同的。
一般的来说我们大部分时间将<%=%>用于HTML与ASP代码相混合的状态下,而Response.Write用于〈%……%〉脚本段中,但从VBScript 语法 <% = expression %> 将“表达式”的值写入 ASP 输出流来分析这个方法可以发现。如果响应缓冲没有打开,则这些语句的每一句都会导致通过网络,以许多小型包的形式,向浏览器写入数据。这是非常慢的。另外,解释少量脚本和 HTML,将导致在脚本引擎和 HTML 之间切换,也降低了性能。因此,对于 Response.Write 的一个调用,替换内嵌的密集组合表达式在应用程序的性能上可以得到很大的提高,一般的来讲我们通常使用以下语句显示数据库内容
以下内容为程序代码:

<% do while not rs.eof %>
<%= rs("flides") %>
<% rs.movenext %>
<% loop %>

将不如
以下内容为程序代码:

<% OUT_str=""
for i = 1 to rs.recodecount
OUT_str=OUT_str+rs("flides")
rs.movenext
next
Response.Write( OUT_str)
%>

执行速度快。
另外:例子中的
for i = 1 to rs.recodecount
替换掉
do while not rs.eof
也是一则技巧,其有用之处在于避免了在每个循环中检测rs.eof的数值而用记数循环,效率可以进一步提高