繁体   English   中英

互联网断开时不会调用getJSON的失败事件

[英]getJSON's fail event not being called when internet drops

我在两台计算机上运行一个24/7的网页。 一台计算机正在运行IE8 ,另一台计算机正在运行IE9 此网页上是一个JavaScript计时器,该计时器运行$.getJSON来检索cross-domain JSON对象。 $.getJSON在正常条件下可以正常运行,但是其中一台计算机上的Internet连接可能会暂时断开。 由于我使用$.getJSON来检索网页的新内容,因此如果互联网暂时中断,则会显示旧内容。

我的问题是,我假定$.getJSONfail事件将在$.getJSON调用时互联网$.getJSON$.getJSON 在这种情况下,将设置一个新计时器以尝试在X分钟内检索JSON (它将永不停止尝试)。 测试此功能时,我禁用了Internet连接,但是fail事件中的代码未触发。

如果没有互联网连接,是否会fail 如果是这样,您将如何建议防止Internet断开时我的JavaScript永久停止?

(我看过的一种方法是在JSON调用之前检查互联网连接,但是我已经读到window.navigator.onLine不可靠,而且找不到其他解决方案)

getJSON只是ajax简写,已经设置了一些值。 而且ajax具有timeout选项。 这可能是最可靠的选择(但显然不会立即响应网络故障)。 我个人会将其与可以确定网络状态的所有检查结合起来。

$.ajax({
    dataType: "json",
    url: url,
    data: data,
    success: success,
    timeout: 10000 // 10 seconds
});

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM