Response.Flush的使用心得
发布时间:2010-04-08 12:57:00
(1)Flush的内容至少要有256字节
经过反复的测试,我得出一个结论。就是flush的内容至少要有256字节。也就是只有编译产生了至少256字节的数据,才能在执行Response.Flush()以后将信息发到客户端并显示。
以下给出一个示例代码:
<html>
<body>
<%
Call TestFlush ''Flush测试
%>
</body>
</html>
<%
''=================================================
Sub DoSomeThing ''模拟一个后台操作
For i=1 To 10000000
None = i
Next
End Sub
''=================================================
Function LongSpaceStr() ''制造一个长空字符串
LongSpaceStr = ""
For i=1 To 256
LongSpaceStr = LongSpaceStr& " "
Next
End Function
''=================================================
Sub TestFlush ''Flush测试
'用LongSpaceStr加长输出内容,以使Flush生效
Response.Write(LongSpaceStr&"正在执行操作,请等待..."&Now())
Response.Flush()
Call DoSomeThing
Response.Write("<br>操作成功完成!"&Now())
Response.Flush()
End Sub
''=================================================
%>
(2)Response.Flush()调用之前不能出现未闭合的HTML标签(<html> ,<body>除外)
比如,以下代码经测试是不行的:
<html>
<body>
<table ID="MyTable"><tr><td>
<%
Call TestFlush ''Flush测试
%>
</td></tr></table>
</body>
</html>
<%
''......略去与上例中同样的代码......
%>
以下代码经测试是可行的:
<html>
<body>
<table ID="MyTable"><tr><td></td></tr></table>
<%
Call TestFlush ''Flush测试
%>
</body>
</html>
<%
''......略去与上例中同样的代码......
%>
以下代码经测试也是可行的:
<html>
<body>
<%
Call TestFlush ''Flush测试
%>
<table ID="MyTable"><tr><td></td></tr></table>
</body>
</html>
<%
''......略去与上例中同样的代码......
%>
--------没有在ASP.NET下做类似测试,道理应该是一样。---------
--------夏春涛 xchuntao@163.com--------
语法 Response.Flush
注释 如果在 ASP 页上调用 Flush 方法,则服务器将响应该页上保持活动的请求。
Response.Flush
对于响应缓冲,因为用户在看到东西之前必须等待整个页面生成,所以用户可能够感觉到ASP页面响应比较慢(虽然整体响应时间缩短了);对一个运行时间较长的页面,可以同过Response.Buffer = False 来关掉响应缓冲;但更好的策略是使用
Reponse.Flush方法。这个方法把所有已经由ASP生成的HTML输出到浏览器中。例
如,一个1,000行的大表,在写完100行之后,ASP可以调用Response.Flush来强制把结果写到浏览器中,这样,用户就可以在其余行生成之前先看到100行数据。这个技术能让你两全其美—响应缓冲和渐进式地在浏览器表现数据。
(注意,在上面的1,000行表的例子中,很多浏览器在遇到</table>标记之前可能并不画出整个表。如果想让浏览器逐步显示出数据,可以将一个大表分成多个小表,然后对每个小表调用Response.Flush。新版本的IE会在下载完整个表之前显示表,并且如果指定了表的列宽,显示的速度会更快。)
另外,当产生一个非常大的页面时,响应缓冲可能会消耗掉许多的服务器内存。这个问题也可以通过使用Response.Flush来解决。


猜你喜欢
- 数据加密是一种保护数据安全的技术,通过对数据进行编码,使得未经授权的用户无法读取或改动数据。加密是通过使用加密算法和密钥实现的。加密算法是一
- 该程序通过绘制树干(最初是树;后来是树枝)并递归地添加树来绘制“树”。 使用Pillow。利用递归函数绘制分形树(fractal tree)
- 本代码将用到wxpy模块,使用前请确保已成功安装。我喜欢命令行安装:接着就可以开始码啦:开头的红色部分为注释,去掉仍然可以运行,有效代码仅七
- python 中提供一种用于对函数固定属性的函数(与数学上的偏函数不一样)# 通常会返回10进制int('12345') &
- 前言之前公司设计的网站比较混乱,很多地方不统一,其中一个就是弹出层,导致这个原因是因为,公司的UI换了好几个人,而他们每个人做出来的都不太一
- Python里的正则表达式Python里的正则表达式,无需下载外部模块,只需要引入自带模块:re:import re官方re模块文档: ht
- 如何做一个可以让人家申请使用的计数器? 好了,我们来做一个与页面分离的计数器,是文本型的啦。这也很简单,
- 一年一度的元宵节刚刚过去,由于时间关系,在元宵节当天晚上11点多才完成本文灯笼的绘制。这两天又在忙着别的事情,所以现在才跟大家分享。一、效果
- 本文实例为大家分享了python实现教务管理系统,供大家参考,具体内容如下mysql+python构成教务管理系统,提供系统管理员,教职工,
- 如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列。range()语法:range(start,end,step=1):顾
- 我在配置mysql时将配置文件中的默认存储引擎设定为了InnoDB。今天查看了MyISAM与InnoDB的区别,在该文中的第七条“MyISA
- 摘要: 三次握手,四次挥手意思是tcp建立连接时需要三次交互来完成,A发起连接A --- SYN --> BA
- 本文实例为大家分享了Vue+Echarts实现简单折线图的具体代码,供大家参考,具体内容如下Vue+Echarts实现一个折线图,打开vue
- 1. 引言Python中有一些内置函数,可以使我们的代码非常优雅。zip 函数就是其中之一,但是zip 函数的使用对于初学者来说不是很直观,
- TypeScript打包 webpack整合通常情况下,实际开发中我们都需要使用构建工具对代码进行打包;TS同样也可以结合构建工具
- 对于三目运算符(ternary operator),python可以用conditional expressions来替代如对于x<5
- 本文实例讲述了基于wxpython开发的简单gui计算器。分享给大家供大家参考。具体如下:# wxCalc1 a simple GUI ca
- python中判断文件结束符的方法:可以使用try except语句块来进行判断。具体使用方法:【try:while True:s = in
- Python程序运行时,打开了多个窗口,使用win32gui模块可以设置指定的某一个窗口为当前活动窗口。import re, timeimp
- 1.Mysql中的数据类型varchar 动态字符串类型(最长255位),可以根据实际长度来动态分配空间,例如:varchar(100)ch