脱机时ApplicationCache和错误

时间:2012-11-02 17:08:39

标签: html5 application-cache

我有一个运行良好的HTML5离线应用程序,缓存验证,并且它通常可用,直到我实际强制设备(或计算机)脱机。

我有一个附加到window.applicationCache.onerror的处理程序,因此我可以处理并提示可能发生的任何随机错误:

window.applicationCache.onerror = function (e) {
    console.log(JSON.stringify(e));
    model.errorInfo(JSON.stringify(e));
    model.cacheError(true);
};

但是,此错误处理程序也会在设备脱机时触发,这会引发错误对话框,但实际上不应该这样做。

这个吐出的JSON如下:

{"cancelBubble":false,"returnValue":true,
 "srcElement":{"onobsolete":null,"status":1},"defaultPrevented":false,
 "timeStamp":1351875347729,"cancelable":false,"bubbles":false,
 "eventPhase":2,"currentTarget":{"onobsolete":null,"status":1},
 "target":{"onobsolete":null,"status":1},"type":"error"}

我认为在处理这个特殊情况时我能找到的东西太明显了。我应该根据这里的某些内容忽略错误,还是完全做其他事情?

1 个答案:

答案 0 :(得分:1)

  

...当设备处于脱机状态时,此错误处理程序也会触发,这会引发错误对话框,但实际上不应该这样做。

对于这种情况,这实际上是appropriate event,因为applicationCache无法获取清单,因此可能会对可能更新的清单执行操作。为这种情况举办另一场活动会很不错,但现在却没有一个。

如果您想向用户显示有关缓存状态的有用信息:每次applicationCache.status事件触发时都要检查error,以查看更新以前缓存的应用程序时是否有错误({{ 1}})或初始缓存(applicationCache.status===1)。