Как я могу отправить изменения пользователям, когда их сервисный работник извлекает данные из кэша и не ищет обновления в реальном времени, если он что-то находит в кэше? - PullRequest
0 голосов
/ 11 ноября 2018

Думаю, я что-то напортачил. Я пытался заставить мой веб-сайт работать в автономном режиме с помощью Service Workers. Это привело к проблемам, так что теперь я закомментировал этот код и не могу заставить его работать в автономном режиме.

Однако я только что посетил живой сайт на своем другом ноутбуке, чего я давно не делал, и он дал мне старую версию сайта, а не обновленную версию. Причина, по которой он дает мне старую версию, заключается в том, что работник службы извлекает данные из кэша и не ищет обновлений в режиме реального времени, если он находит что-то в кэше:

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

      return fetch(event.request);
    }).catch(function () {
      console.error('Error trying to match event request to cache.');
    })
  );
});

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

...