明凯博客

关注网站技术,一个特立独行的全栈程序员

Asp实现边执行边输出结果

asp程序一边运行的时候一边把结果输出到客户端,这就需要利用缓冲页输出,即Response.Buffer。

< % Response.Buffer = True %>这句话的意思就是指明输出页面是否被缓冲,当属性值为True时,服务器将不会向客户端发送任何信息,直到所有程序执行完或者遇到< % Response.Flush %>或< % Response.End %>语句,才会释放缓冲区的信息。

下面给出示例:

1
2
3
4
5
6
7
8
response.buffer =true 
for i=1 to 10000 
  response.write i&" <br />" 
  for j=1 to 256 
    response.write " <span style='display:none;'>www.aimks.com </span>" 
  next 
  response.flush  
next

我加一个j循环是为了每次i循环的输出数据都达到饱和状态,既至少有256字节,
所以i循环是一条一条从闸门里冲出来的。有很明显的“刷屏”效果。
如果你在每个i循环里加一个script语句,客户端脚本语句,那么运行速度会更慢,效果更家显著 。

为什么会用到此技术?
一般是没必要这样的,我是用在后台生成1千多个静态页面的时候,希望每操作一次都看到结果, 看到执行到哪里了,执行到哪一步了 。

需要注意的是:如果本例中 < %%>里的代码放在一个”table”里,那么一切努力都将作废。
因为table解释的时候先解释完 “td”里面的所有内容 然后执行 “table”等关闭标签,最后才一起发送给客户端。

, , , ,

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注