经典asp - 什么时候使用Response.flush?

时间:2008-09-25 19:16:55

标签: asp-classic

我们的报告非常缓慢。我添加了一个Response.flush,看起来好多了。使用这种方法有哪些注意事项。

4 个答案:

答案 0 :(得分:8)

如果Response.Buffer未设置为true,那么您将收到运行时错误。此外,如果在ASP页面上调用Flush方法,则服务器不会遵守该页面的Keep-Alive请求。

您还需要注意是否使用基于表的设计,因为在整个表发送之前它不会在某些浏览器中呈现。这意味着如果您有10,000行,则用户仍然需要在实际看到它们之前等待所有10,000行传输。

答案 1 :(得分:6)

扩展Wayne's answer:如果您需要设置Response.Headers,则在刷新任何部分响应之后,您无法执行此操作。

答案 2 :(得分:3)

像这样刷新响应没有问题。通常建议将缓冲整个页面并将其刷新到客户端以获得更好的性能,但对于长时间运行的脚本,通常最好向客户端显示一些数据,以便用户看到正在发生的事情。

请记住,从一开始就缓冲页面时,手动刷新只会产生正确的效果,否则IIS会自动刷新(将页面流式传输到客户端)。

您应该经常避免刷新,因为IIS必须经常使用资源来刷新页面而不是处理脚本。即:每50行冲洗一次,而不是每行冲洗。

答案 3 :(得分:2)

Response.flush可以用来向浏览器发送报告的标题..然后显示“加载消息”,然后显示您的报告过程并刷新报告,然后执行一小段javascript来隐藏“加载”消息。

通过这种方式,您可以让用户知道某些内容正在变化,因此他们不会按STOP BACK或关闭窗口,因为它们可能会被诱惑。

此外,我已经玩了很多浏览器渲染什么表和IE似乎是唯一一个不呈现表,除非收到标记。这意味着所有行都可以逐渐出现在其他浏览器中,但不会出现在IE中。