3

在 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 上的那些整洁的资源选项卡信息。

4

1 回答 1

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

那么一切都会按预期进行。

于 2013-10-28T21:39:17.340 回答