web-applications - 未引发 applicationCache 事件

标签 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 在我使用 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/

相关文章:

safari - 应用程序缓存事件 noupdate 在 Safari 浏览器上不会间歇性触发。

.net - 体系结构帮助 : Queries on Subsets

iphone - 没有眩光的 iOS 网络应用程序图标

asp.net - Web 应用程序需要 WCF 吗?

ios - 在IOS中使用缓存 list 实现Progressive Web App的缓存网页

html - 如何在 Firefox 中专门禁用 HTML5 应用程序缓存

javascript - iOS 5 Mobile Safari 应用程序缓存更改?

html - 在移动设备上测试网站

iOS网络应用程序: Use back swipe gesture to go back