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