Web applications 未引发applicationCache事件

Web applications 未引发applicationCache事件,web-applications,application-cache,Web Applications,Application Cache,在Chrome中,捕捉applicationCache事件是有效的(见下文),但在FireFox 17中不起作用(尽管我从信息中看到,在允许appCache填充后,其中有1.7MB)。因此,它是工作,但我没有得到的事件。为什么?(此代码位于加载的第一个.JS文件中) 顺便说一句,我希望FireBug在appCache上有那个些整洁的资源标签信息,就像我用Chrome工具做的索引一样 据我所知,事件确实会被触发,但在调用swapCache时会出现错误,这会阻止完成代码块。 您可以使用try-cat

在Chrome中,捕捉applicationCache事件是有效的(见下文),但在FireFox 17中不起作用(尽管我从信息中看到,在允许appCache填充后,其中有1.7MB)。因此,它是工作,但我没有得到的事件。为什么?(此代码位于加载的第一个.JS文件中)


顺便说一句,我希望FireBug在appCache上有那个些整洁的资源标签信息,就像我用Chrome工具做的索引一样

据我所知,事件确实会被触发,但在调用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);

然后一切都会按预期进行。

您需要这个版本的Firefox吗?如果不是,那么在后续版本的Firefox中是否也存在同样的问题?请注意,在Firefox24
swapCache
中,我似乎已不再使用FF,因为我需要IndexedDB中良好的二进制blob支持,而FF使用webSQL进行IDB的破解工作。
 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);