Как получить ответ на индекс JS от работника службы, если страница переходит в автономный режим - PullRequest
0 голосов
/ 05 июня 2018

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

1 Ответ

0 голосов
/ 05 июня 2018

Взгляните здесь :

Сначала вам нужно установить работника сервиса.Далее вы должны сказать, какие запросы необходимо перехватить и как вы хотите ответить на запрос.(Стратегия кэширования).

в вашем index.html добавьте

if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/service-worker.js')
  .then(function(registration) {
    console.log('Registration successful, scope is:', registration.scope);
  })
  .catch(function(error) {
    console.log('Service worker registration failed, error:', error);
  });
}

, а затем в ваш service-worker.js добавьте

self.addEventListener('fetch', function(event) {
  event.respondWith(
    caches.open('cache-name').then(function(cache) {
      return cache.match(event.request).then(function (response) {
        return response || fetch(event.request).then(function(response) {
          cache.put(event.request, response.clone());
          return response;
        });
      });
    })
  );
});

Это кэширует все вашисетевые запросы GET.Так что из вашего следующего запроса он сначала проверит кеш и только если данных там нет, он сделает выборку по сети.

...