更新应用缓存清单

时间:2013-10-02 15:05:03

标签: html5 backbone.js manifest offline

我正在使用html5 Manifest存储应用程序以供离线使用,但我希望能够在应用程序在线时更新缓存中的数据。我好好看看周围,找不到任何可以帮助我的东西。

1 个答案:

答案 0 :(得分: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);
}