在渐进式网络应用程序中保持缓存内容最新的任何好策略?

时间:2017-01-15 12:21:48

标签: caching service-worker progressive-web-apps

我正在阅读一篇关于谷歌服务工作者的文章。

在“缓存和返回请求”一章中,它演示了缓存第一种方法:

self.addEventListener('fetch', function(event) {
  event.respondWith(
    caches.match(event.request)
      .then(function(response) {
        // Cache hit - return response
        if (response) {
          return response;
        }
        return fetch(event.request);
      }
    )
  );
});

在点击缓存时会立即响应,但如果缓存后响应已更改,该怎么办?据我所知,CacheStorage与cookie不同,除非被删除,否则它不会过期。

是否有任何好的策略可以让缓存保持最新状态?

1 个答案:

答案 0 :(得分:1)

服务工作者和缓存API用于缓存静态资产而不是数据;因此,除非有某种形式的部署,否则响应不太可能发生变化。在这种情况下,您将通知服务工作者下载下一版本的静态文件(通过更新缓存名称使缓存无效;例如通过gulp进程...等)。或者您可以使用sw-precache来完成这项工作(以及更多)。

另一方面,如果您正在缓存数据,您将使用类似于IndexedDB的东西,一旦您有活动连接,您将下载最新版本的数据。

了解详情:https://medium.com/dev-channel/offline-storage-for-progressive-web-apps-70d52695513c#.m7k9smyv6