Ошибка загрузки внешних файлов с сервисным работником - PullRequest
0 голосов
/ 15 ноября 2018

Я использую файлы cdn, но, видимо, мой сервисный работник их не кеширует. Вы бы сделали это?

The error displayed in the console

Код работника сервиса:

const version = "0.0.1";
const cacheName = `sfa-${version}`;
self.addEventListener('install', e => {
  e.waitUntil(
    caches.open(cacheName).then(cache => {
      return cache.addAll([
          `/`,
          `/dashboard/`
      ])
          .then(() => self.skipWaiting());
    })
  );
});

self.addEventListener('activate', event => {
  event.waitUntil(self.clients.claim());
});

self.addEventListener('fetch', event => {
  event.respondWith(
    caches.open(cacheName)
      .then(cache => cache.match(event.request, {ignoreSearch: true}))
      .then(response => {
      return response || fetch(event.request);
    })
  );
});

1 Ответ

0 голосов
/ 15 ноября 2018

Возможно, вы пытались установить обработчик onerror в контейнере navigator.serviceWorker следующим образом:

// no effect outside service worker script
navigator.serviceWorker.onerror = function() {...};

Обработчик ошибок должен быть установлен из служебного сценария с помощью self.onerror (self - это особыйпеременная / атрибут здесь, который ссылается на ServiceWorkerGlobalScope).Обратный вызов onerror предоставляется только с сообщением об ошибке.

// inside service worker script
self.onerror = function(message) {
  console.log(message);
};

Кроме того, вы можете прослушать событие ошибки работника службы, которое включает в себя ErrorEvent, содержащее местоположение ошибки:

// inside service worker script
self.addEventListener('error', function(e) {
  console.log(e.filename, e.lineno, e.colno, e.message);
});

для более подробной информации визит

...