Сервисный работник не обновляет предварительно кэшированный Контент? - PullRequest
0 голосов
/ 11 марта 2019

Я некоторое время использую Service Worker со следующим кодом в моем 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), например, мой '/', направляет мою домашнюю страницу веб-приложения, тогда любые изменения в содержимом домашней страницы не отражаются, если я не выполню жесткое обновление?

Я добавляю маршрут '/' в предварительное кэширование вместе с моим JS-файлом в комплекте, так как мне нужна быстрая / автономная поддержка моей домашней страницы. Что я делаю неправильно? Как я могу изменить это поведение?

Заранее спасибо Привет

...