当前位置: 首页 > 图文教程 > 网络编程 > ASP > response.write与<%=%>之间的区别

ASP
Adodb.Command 平时很少注意到的一个参数
Asp.Net控件加载错误的解决方法
远程连接access数据库的方法
创建具有JScript的HTML的XMLHTTP
在Asp中如何快速优化分页的技巧
用VB生成DLL封装ASP代码,连接数据库
RS.OPEN SQL,CONN,A,B 全接触
利用adodb.stream直接下载任何后缀的文件(防盗链)
用ASP编程控制在IIS建立Web站点的程序代码
使用VBScript操作Html复选框(CheckBox)控件
把文章内容中涉及到的图片自动保存到本地服务器
两个不同数据库表的分页显示解决方案
使用组件封装数据库操作(一)
使用组件封装数据库操作(二)
如何在pb中创建COM组件,并在asp中调用并返回结果集?
用ASP和Microsoft.XMLDOM分析远程XML文件
浅谈无刷新取得远程数据技术
将ASP纪录集输出成n列的的表格形式显示的方法
在ASP中通过oo4o连接Oracle数据库的例子
Server Application Error详细解决办法

ASP 中的 response.write与<%=%>之间的区别


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 135 ::
收藏到网摘: n/a

自己也遇到过这种情况:数据库中才2w条记录,使用通常的那种html与asp混用的方法来显示,打开页面的时候,要等待很长的时间才能看到效果,然后点击下一页的时候,也需要很长的时间。请教过一些高手,才知道问题出在html与asp混用上,这种使用方法对数据量少,没有太大的影响。数据量多,就会浪费时间了。

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

我们通常使用以下语句显示数据库内容:

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

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

执行速度快。另外,我们使用
for i = 1 to rs.recodecount
替换掉
do while not rs.eof
也有一个显然的好处。用指定次数的循环,可以避免每次都检测是否到达循环的最后。
如此也可以提高效率。