【发布时间】:2013-04-06 05:43:40
【问题描述】:
我在两台计算机上 24/7 运行一个网页。一台计算机运行IE8,另一台运行IE9。此网页上有一个 JavaScript 计时器,它运行 $.getJSON 以检索 cross-domain JSON 对象。 $.getJSON 在正常情况下可以完美运行,但是其中一台计算机上的 Internet 连接可能会暂时中断。由于我使用$.getJSON 来检索网页的新内容,因此如果互联网暂时中断,则会显示旧内容。
我的问题是,如果在调用 $.getJSON 时互联网出现故障,我假设 $.getJSON 的 fail 事件会触发。在这种情况下,将设置一个新计时器以尝试在 X 分钟内检索JSON(它永远不会停止尝试)。对此进行测试时,我禁用了 Internet 连接,但 fail 事件中的代码没有触发。
fail在没有网络连接的情况下会不会被调用?如果是这样,您会建议什么来防止我的 JavaScript 在互联网出现故障时永久停止?
(我查看的一种方法是在 JSON 调用之前检查互联网连接,但我读过 window.navigator.onLine 是不可靠的,我找不到任何其他解决方案)
【问题讨论】:
-
或者您可以使用这样的库添加“isoffline”回调:nouincolor.com/heyoffline.js
标签: javascript jquery json internet-explorer cross-domain-policy