0

我正在使用 html5 Manifest 存储应用程序以供离线使用,但是我希望能够在应用程序在线时更新缓存中的数据。我环顾四周,找不到任何体面的东西来帮助我。

4

1 回答 1

2

您只需要修改服务器上的清单文件。浏览器检查自上次缓存所有资产以来清单文件是否已被修改,如果有,它将触发一个updateready事件。然后浏览器将请求所有新的/修改的资产并缓存它们。下次加载页面时,将使用新资产。您可以通过强制页面重新加载来使浏览器在拥有这些新资产后立即使用它们:

if ('applicationCache' in window) {
  // Check if a new cache is available on page load.
  window.addEventListener('load', function(e) {
    window.applicationCache.addEventListener('updateready', function(e) {
      if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
        // Browser downloaded a new app cache.
        try { window.applicationCache.swapCache() } catch(err) { }
        // Swap it in and reload the page to get the new hotness.
        var reload = confirm('A new version of this site is available. Load it?');
        if (reload) window.location.reload();
      }
    }, false);
  }, false);
}
于 2013-10-02T18:40:13.413 回答