Слушатель событий для работников сферы услуг - выборка - PullRequest
1 голос
/ 16 марта 2020

Я создал сервисного работника по следующему коду:

if ('serviceWorker' in navigator) {
  window.addEventListener('load', function() {
    navigator.serviceWorker.register('/sw.js').then(function(registration) {
      console.log('ServiceWorker registration successful with scope: ', registration.scope);
    }).catch(function(err) {
      console.log('ServiceWorker registration failed: ', err);
    });
  });
}

и получите точный ответ, и событие 'install' отправляет в sw. js ОК, но событие 'fetch' никогда не генерирует.

Я использую http-сервер (node js) с портом 80 (http), я видел мой запрос в DevTools Chrome и в консоли от http-сервера, но мой сервисный работник не отправил ни одного.

Код моего работника службы:

self.addEventListener('install', () => {
    console.log("event - install"); // OK
});

self.addEventListener("fetch", (e) => {
    console.log("A"); // BAD
    return e.request;
});

Я использую этот код в конце тела

setTimeout(() => {
  alert("S");
  fetch("/svg.svg", {
    method: "GET"
  });
}, 10000);

Ответы [ 2 ]

0 голосов
/ 16 марта 2020

Хорошо, я решаю свою проблему. Я забыл удалить опцию «Отключить кеш» в DevTools (на вкладке «Сеть») Chrome, я работал с этой опцией вчера.

0 голосов
/ 16 марта 2020

serviceworker должен работать по протоколу https, но http-сервер создает http-сервер

...