9

我们有一个令人痛苦的缓慢报告。我添加了一个 Response.flush ,它似乎好多了。使用这种方法有哪些注意事项。

4

4 回答 4

8

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

您还需要查看您是否使用基于表格的设计,因为在发送整个表格之前它不会在某些浏览器中呈现。这意味着如果您有 10,000 行,用户仍然需要等待在他们真正看到它们之前,所有 10,000 行都要转移。

于 2008-09-25T19:19:08.747 回答
6

扩展韦恩的回答:如果你做的任何事情都需要设置 Response.Headers,在 Response 的任何部分被刷新后你就不能这样做。

于 2008-09-25T19:34:59.893 回答
3

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

请记住,手动刷新仅在从一开始就缓冲页面时才有适当的效果,否则 IIS 将自动刷新(将页面流式传输到客户端)。

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

于 2008-12-11T18:37:11.820 回答
2

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

这样,您将让您的用户知道正在发生某些事情,因此他们不会按 STOP BACK 或只是关闭窗口,否则他们可能会受到诱惑。

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

于 2008-10-01T18:33:06.363 回答