我有一个运行良好的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"}
我认为在处理这个特殊情况时我能找到的东西太明显了。我应该根据这里的某些内容忽略错误,还是完全做其他事情?
答案 0 :(得分:1)
...当设备处于脱机状态时,此错误处理程序也会触发,这会引发错误对话框,但实际上不应该这样做。
对于这种情况,这实际上是appropriate event,因为applicationCache
无法获取清单,因此可能会对可能更新的清单执行操作。为这种情况举办另一场活动会很不错,但现在却没有一个。
如果您想向用户显示有关缓存状态的有用信息:每次applicationCache.status
事件触发时都要检查error
,以查看更新以前缓存的应用程序时是否有错误({{ 1}})或初始缓存(applicationCache.status===1
)。