经典ASP-何时使用Response.flush?
时间:2020-03-06 14:44:34 来源:igfitidea点击:
我们的报告很缓慢,我添加了Response.flush,看起来好多了。使用此方法有哪些注意事项?
解决方案
如果Response.Buffer未设置为true,则将出现运行时错误。另外,如果在ASP页上调用了Flush方法,则服务器不会接受该页的Keep-Alive请求。
我们还需要查看是否使用基于表的设计,因为在发送整个表之前,它不会在某些浏览器中呈现..这意味着,如果我们有10,000行,则用户仍需要等待所有10,000行要转移,然后才能实际看到它们。
扩展Wayne的答案:如果我们需要做任何事情来设置Response.Headers,则在Response的任何部分被刷新后,我们将无法进行设置。
Response.flush对于将报告的标题发送到浏览器很有用。然后显示"正在加载消息",然后在报告过程中刷新报告,然后执行一小段JavaScript以隐藏"正在加载"消息。
这样,我们将让用户知道正在发生什么事情,因此他们不会按STOP BACK或者只是关闭窗口,否则可能会被诱惑。
此外,我在浏览器呈现什么表方面做过很多工作,而IE似乎是唯一不呈现表的方法,除非收到标签。这意味着所有行可能会逐渐出现在其他浏览器中,但不会出现在IE中。
这样刷新响应没有问题。通常建议为了更好的性能来缓冲整个页面并将其刷新到客户端,但是对于长时间运行的脚本,通常最好将一些数据显示给客户端,以便用户看到正在发生的事情。
请记住,只有从一开始就缓冲页面时,手动刷新才具有适当的效果,否则IIS将自动刷新(将页面流式传输到客户端)。
我们应避免频繁刷新,因为IIS随后将不得不经常使用资源来刷新页面,而不是处理脚本。即:每隔50行而不是每行刷新一次。