applicationCache事件未引发

时间:2013-01-03 19:59:22

标签: web-applications application-cache

在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工具获得那些整洁的资源标签信息。

1 个答案:

答案 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);

然后一切都会按预期工作。