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

有帮助吗?

解决方案

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

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

其他提示

扩展 Wayne的回答:如果有的话确实需要设置Response.Headers,在刷新任何部分的响应之后你就不能这样做。

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

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

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top