在 Chrome 中,捕获 applicationCache 事件有效(见下文),但在 FireFox 17 中无效(尽管我从信息中看到,在允许 appCache 填充后,其中有 1.7MB)。所以它正在工作,但我没有得到这个事件。为什么? (此代码位于加载的第一个 .JS 文件中)。
function onUpdateReady() {
window.applicationCache.swapCache();
if (confirm('A new version of this site is available. Load it?')) {
window.location.reload();
}
}
window.applicationCache.addEventListener('updateready', onUpdateReady);
if (window.applicationCache.status === window.applicationCache.UPDATEREADY) {
onUpdateReady();
}
顺便说一句,我希望 FireBug 在我使用 Chrome 工具时拥有的 appCache、IndexDB 上的那些整洁的资源选项卡信息。
最佳答案
据我所知,该事件确实被触发了,但是当您调用 swapCache 时会出现错误,这会阻止完成代码块。
你可以通过使用 try-catch 来解决这个错误
window.applicationCache.addEventListener('updateready', function() {
try {window.applicationCache.swapCache();}
catch(error) {
console.log(error.code);
}
if (confirm('A new version of this site is available. Load it?')) {
window.location.reload();
}
}, false);
那么一切都会按预期进行。
关于web-applications - 未引发 applicationCache 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14146267/