Кэш сервисных работников не обновляется - PullRequest
2 голосов
/ 21 мая 2019

Я пытаюсь кешировать статические ресурсы в сервисном работнике. Но когда я редактирую некоторые статические файлы, закрываю вкладку и снова открываю ее, я не вижу никаких изменений.

Мой кеш не обновляется. Если я очищаю данные сайта в веб-инструментах Chrome и снова открываю вкладку, я вижу новые изменения.

Пожалуйста, смотрите мой код ниже.

self.addEventListener('install', function(event) {
  event.waitUntil(
    caches.open('static')
      .then(function(cache) {
        cache.addAll([
            '/index.html',
            '/src/js/app.js',
            '/src/css/app.css'
        ]);
     })
  );
});

self.addEventListener('fetch', function(event) {
   event.respondWith(
     caches.match(event.request)
   );
});

Ответы [ 2 ]

1 голос
/ 21 мая 2019

Вы должны использовать управление версиями кэша .

var STATIC_CACHE_VERSION = '1';

Приведенная ниже функция будет очищать кэш каждый раз, когда вы меняете STATIC_CACHE_VERSION переменную.

self.addEventListener('activate', function(event) {
  event.waitUntil(
    caches.keys()
      .then(function(keyList) {
        return Promise.all(keyList.map(function(key) {
          if (key !== 'static-' + STATIC_CACHE_VERSION) {
            return caches.delete(key);
          }
        }));
      })
  );
  return self.clients.claim();
});
0 голосов
/ 21 мая 2019

Используя Google Chrome, попробуйте нажать Ctrl + Shift + I, нажмите «Приложение», затем «Сервисные работники». На этой вкладке вы можете отменить регистрацию любого работника, которого вы хотите.

...