2

如果网站处理和加载页面的时间超过 10 秒,Internet Explorer将执行connection timeout. 用户可以通过将注册表中的默认值设置为更高的值来防止这种情况发生。

但我真的不能告诉我的任何客户这样做;那么我如何首先防止这种情况发生呢?

我一直学会不要使用 abuffer并刷新它,因为这会使数据的计算变慢。另一个问题是,所有的计算都是先完成的,然后放入 amultidimensional array中,最后用response.write. 我不认为,buffer flush可以对此做任何事情吗?

4

1 回答 1

2

我不认为,缓冲区刷新可以对此做任何事情吗?

是的,它可以:

服务器无响应时 Internet Explorer 错误“连接超时”

Internet Explorer 对服务器返回数据施加了超时限制。默认情况下,超时限制如下: Internet Explorer 5 到8:60 分钟

如this question中所述,您所指的超时似乎可能由不同的应用程序错误地设置。

如果页面在几分钟内没有返回,许多用户会认为出现了问题,他们会停止该过程。因此,您应该将您的服务器进程设计为在大约五分钟内返回数据,这样用户就不必等待很长时间。

知识库文章还指出:

您通常可以将长流程分解成更小的部分。或者,服务器可以返回状态数据以更新用户有关该过程的信息。此外,您可以创建一个基于消息或异步方式的长服务器进程,以便在提交作业后立即返回给用户,然后在长进程完成后通知用户。

所以你应该把数据刷新到客户端,这样它就知道服务器还活着。

我一直学会不使用缓冲区并刷新它,因为这会使数据的计算变慢。

请显示此类声明的来源。当然,它会使计算变慢,但很可能不会显着。

我喜欢知识库文章中建议的方法。让您的服务器立即返回,同时将长时间运行的操作排入队列。然后客户端可以轮询操作的进度,因此它不会超时。

于 2012-11-08T11:54:02.713 回答