服务人员未更新预缓存的内容吗?

时间:2019-03-11 14:36:40

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

我使用sw.js中的以下代码已经有一段时间了。

var cacheName = 'myCache';
var filesToCache = [
    '/',
    'build/css/stylesheet.css',
    'build/js/bundle-min.js'
];


self.addEventListener('install', function(e) {
  console.log('[ServiceWorker] Install');
  e.waitUntil(
    caches.open(cacheName).then(function(cache) {
      console.log('[ServiceWorker] Caching app shell');
      return cache.addAll(filesToCache);
    })
  );
});

self.addEventListener('activate', function(e) {
  console.log('[ServiceWorker] Activate');
  e.waitUntil(
    caches.keys().then(function(keyList) {
      return Promise.all(keyList.map(function(key) {
        if (key !== cacheName) {
          console.log('[ServiceWorker] Removing old cache', key);
          return caches.delete(key);
        }
      }));
    })
  );
  return self.clients.claim();
});

self.addEventListener('fetch', function(e) {
  e.respondWith(
    caches.match(e.request).then(function(response) {
      return response || fetch(e.request);
    })
  );
});

以下代码段的问题是,一旦我将文件添加到filesToCache Array(Precache),就像我的“ /”路由Web应用程序的主页一样,除非我进行硬刷新,否则主页内容的任何更改都不会反映出来?

我需要在预缓存中添加“ /”路由以及捆绑的CSS,JS文件,因为需要对我的主页进行快速/离线支持。 我究竟做错了什么?如何更改此行为?

预先感谢 问候

0 个答案:

没有答案