Может ли работник службы отменить загрузку http-запроса, если нет кэша и нет inte rnet? - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь реализовать тостер (ReactJs), который отображается, если в моем сервисном работнике нет соединения inte rnet и нет кэша. Работник службы работает на главной странице html, созданной JSP.

Может ли работник службы "прервать" или "отменить" запрос http (и позвонить на мой тостер)? Пользователь должен оставаться на странице, пока соединение недоступно.

Я следовал за служащим, делающим c, я пытался «поймать», если моя выборка не удалась, но мне удалось отобразить только изображение, присутствующее в кэше, если ни inte rnet, ни кэшированная страница не доступны .

Вот мой выбор:

self.addEventListener("fetch", function(event){ event.respondWith(

caches.match(event.request).then(function(response) {

  // Cache hit - return response

  if (response) {
    return response}

  return fetch(event.request)
    .then(function(response) {

      console.log(event);
      console.log(response);

      if (!response || response.status !== 200 || response.type !== "basic")

      var responseToCache = response.clone();
      caches.open(CACHE_NAME).then(function(cache) {
        cache.put(event.request, responseToCache);
      });

      return response;
    })
    .catch(function() {
      console.log("here is the problem");
      return caches.match("/default image");
    });
}));  // return self.skipWaiting();});

Есть ли другой способ добиться этого? Спасибо.

...