在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在appCache,IndexDB上使用Chrome工具获得那些整洁的资源标签信息。
答案 0 :(得分:1)
据我所知,事件会被触发,但是当你调用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);
然后一切都会按预期工作。