2012-10-18 61 views
2

如何设置$ .getJSON超时无限期

浏览器设置为20秒一个默认的超时时间,但我想它无限期长轮询

+0

你应该实际使用的大约30秒超时一分钟,因为连接可以在网络中的某处切割。您应该设置超时并准备您的客户端和服务器以重新轮询数据。 –

+0

无论如何,您应该准备您的客户端和服务器重新轮询数据,因为可能发生大量错误。 –

回答

4

使用jQuery.ajaxSetup和超时设置:

设置该请求的超时时间(以毫秒为单位)。 [..]超时时间从$ .ajax调用开始;如果有多个其他请求正在进行,并且浏览器没有可用连接,则可能会在请求发送之前超时。在jQuery 1.4.x及以下版本中,如果请求超时,XMLHttpRequest对象将处于无效状态;访问任何对象成员可能会抛出异常。仅在Firefox 3.0+中,脚本和JSONP请求不能被超时取消;脚本即使在超时时间后到达,也会运行。

http://api.jquery.com/jQuery.ajax/

http://api.jquery.com/jQuery.ajaxSetup/

$.ajaxSetup({ 
    timeout: 0 
}); 
+1

指定'timeout:0'将完全禁用超时。 – Barmar

+0

谢谢Barmar我会补充一点。 – jantimon

+0

我已经添加了这..即7,仍请求超时..也在FF3.0.15 – ton