浏览器超时


76

浏览器是否内置了超时功能,如果可以,它们是什么?

我有一个页面,该页面在最多需要5分钟才能运行的进程上执行AJAX调用。有人说浏览器在2分钟后超时,但不知道这有什么道理。


我已经进行了15分钟以上的页面处理,没有超时,并且成功返回(长php脚本)。
Mikecito

@Mikecito-我们一直使用相同的浏览器,还是在其中使用多个浏览器?
Splashlin

嗯...我至少在IE 8和Windows上是chrome,在Mac上是Chrome和Safari,但我不确定哪一个具有最长的超时时间。每个脚本在5到15分钟之间对我来说是变化的,我不记得是哪个脚本。
Mikecito


3
对于响应时间较长的请求,立即202接受可能更合适:“请求已被接受以进行处理,但处理尚未完成。[...]其目的是允许服务器接受请求无需用户代理与服务器的连接一直持续到完成该过程,响应应描述请求的当前状态,并指向(或嵌入)可以提供请求的状态监视器。估计何时将满足请求的用户。” 资料来源:tools.ietf.org/html/rfc7231#section-6.3.3
kuporific

Answers:


42

它取决于浏览器。“默认情况下,Internet Explorer的KeepAliveTimeout值为一分钟,其他限制因素(ServerInfoTimeout)为两分钟。这两种设置都会导致Internet Explorer重置套接字。” -来自IE支持http://support.microsoft.com/kb/813827

Firefox也和我认为的相同。

通常,尽管将服务器超时设置为低于浏览器超时,但是至少您可以控制它并将其设置为更高。

但是,您宁愿处理超时,这样您就可以对此类事件进行处理。请参见以下主题:如何在浏览器中检测AJAX(XmlHttpRequest)调用的超时?


4
显然,Firefox大约需要300秒。morgb.blogspot.de/2014/05/…–
Marcus

1
FF中的默认配置为300秒
相当于

17

您可以在此链接中查看Chrome的默认值

int64_t g_used_idle_socket_timeout_s = 300 // 5 minutes

据我所知,在Chrome中,没有一种简单的方法(如Firefox那样)来更改超时值。


1
对于Firefox,我使用此答案来更改超时。
g2server

是的,那是我的意思,它是“类似于Firefox的简便方法”,在Chromium源代码中,正如我所说的那样,它很容易更改和编译,但并不知道飞行中的“简便方法”
Kalamarico

1
我稍微误读了您的答案,但我会留下评论,它可能会帮助您。
g2server
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.