Response.Flush的使用心得

简介:   (1)Flush的内容至少要有256字节  很多时候我们写的asp程序会因为做很多操作,所以会花上一分钟甚至几分钟时间。为了使软件使用者能够耐心的等待程序的执行,我们经常会希望有一个进度条来表示程序执行的状态。

  (1)Flush的内容至少要有256字节
  很多时候我们写的asp程序会因为做很多操作,所以会花上一分钟甚至几分钟时间。为了使软件使用者能够耐心的等待程序的执行,我们经常会希望有一个进度条来表示程序执行的状态。或者最起码要显示一个类似: “数据载入中”,“正在保存数据” 等的说明性文字。此时我们就会用到Response.flush()。他会将缓冲区中编译完成的数据先发送到客户端。
  但是有很多时候,我们发现即使我们使用了Response.Flush(),但是并没有将前面的信息发到客户端来显示。呈献给我们的依然是白屏。经过反复的测试,我得出一个结论(仅代表个人观点,可随意引用,但后果自负)。就是flush的内容至少要有256字节。也就是只有编译产生了至少256字节的数据,才能在执行Response.Flush()以后将信息发到客户端并显示。
  以上内容来自http://www.webjx.com/htmldata/2005-10-10/1128898276.html,经本人测试是正确的。以下给出一个示例代码:
<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)--------

目录
相关文章
|
7月前
|
编解码 应用服务中间件
技术笔记:Resonse9_Response对象2
技术笔记:Resonse9_Response对象2
|
vr&ar Swift
大师学SwiftUI第9章Part 1 - 异步并发之Task、Async、Await和错误
苹果系统借助现代处理器的多核可同步执行多条代码,提升同一时间内程序所能执行的任务。例如,一段代码从网上下载文件,另一段代码可以在屏幕上显示进度。此时,我们不能等待第一个执行完后再执行第二个,而必须要同步执行这两个任务。
237 0
|
Web App开发 Java 应用服务中间件
学习Request和Response这一篇就够啦~1
学习Request和Response这一篇就够啦~
|
IDE 开发工具
学习Request和Response这一篇就够啦~2
学习Request和Response这一篇就够啦~
|
前端开发 PHP
php解决ajax使用post请求时提交的数据过多而导致et::ERR_CONNECTION_RESET的解决方案
php解决ajax使用post请求时提交的数据过多而导致et::ERR_CONNECTION_RESET的解决方案
201 0
|
前端开发 Java 应用服务中间件
细谈JavaWeb中的Request和Response
request:获取请求数据 浏览器会发送HTTP请求到后台服务器[Tomcat] HTTP的请求中会包含很多请求数据[请求行+请求头+请求体] 后台服务器[Tomcat]会对HTTP请求中的数据进行解析并把解析结果存入到一个对象中 所存入的对象即为request对象,所以我们可以从request对象中获取请求的相关参数 获取到数据后就可以继续后续的业务,比如获取用户名和密码就可以实现登录操作的相关业务
305 0
|
测试技术 开发者
记一次给 docusaurus 官方提交 pull request 的过程
记一次给 docusaurus 官方提交 pull request 的过程
149 0
记一次给 docusaurus 官方提交 pull request 的过程
|
前端开发 Java 应用服务中间件
🤓 Request&Response(一)
🤓 Request&Response
88 0
|
SQL 前端开发 Java
🤓 Request&Response(三)
🤓 Request&Response(三)
110 0
|
存储 前端开发 Java
🤓 Request&Response(二)
🤓 Request&Response
135 0