当网络掉线时,getJSON's fail事件没有被调用
getJSON's fail event not being called when internet drops
我在两台电脑上24/7运行一个网页。一台计算机运行IE8
,另一台运行IE9
。在这个网页上是一个javascript定时器,它运行$.getJSON
来检索cross-domain
JSON对象。$.getJSON
在正常情况下工作完美,但是其中一台计算机的互联网连接可能会暂时中断。由于我使用$.getJSON
为网页检索新内容,如果互联网暂时停止,旧内容将被显示。
我的问题是,我假设$.getJSON
的fail
事件将触发,如果互联网当$.getJSON
被调用。在这种情况下,将设置一个新的计时器来尝试在X分钟内检索JSON
(它永远不会停止尝试)。在测试时,我禁用了互联网连接,但fail
事件中的代码没有触发。
在没有互联网连接的情况下,fail
不会被调用吗?如果是这样,你有什么建议,以防止我的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/相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- 从控制器返回后Ajax启动事件激发
- 如何从画布上的某个移动事件中获取X和Y
- Jquery:未触发select事件
- JsFiddle上的鼠标事件不起作用
- 只覆盖箭头键滚动事件
- $window.ga在AngularJS事件中未定义
- cron作业与Javascript计时事件
- 当网络掉线时,getJSON's fail事件没有被调用