Я использую средство кэширования рабочих служб, однако после обновления сайта кеш по-прежнему обслуживает старые данные при обновлении страницы.Сервис-работник бросает непонятные ошибки, когда сервер не работает
Так, согласно ответу на this post я реализовал несвежий-While-REVALIDATE:
self.addEventListener('fetch', function(event) {
event.respondWith(caches.open(CACHE_NAME).then(function(cache) {
return cache.match(event.request).then(function(response) {
var fetchPromise = fetch(event.request).then(function(networkResponse) {
// if we got a response from the cache, update the cache
if (response) {
console.log("cached page: " + event.request.url);
cache.put(event.request, networkResponse.clone());
}
return networkResponse;
});
// respond from the cache, or the network
return response || fetchPromise;
});
}));
});
Во время соединения, все кажется хорошо, и я могу видеть сообщение журнала консоли.
Когда я останавливаю сервер и обновляю страницу, я получаю нагрузку исключений.
Uncaught (in promise) TypeError: Failed to fetch
Failed to load resource: net::ERR_CONNECTION_REFUSED
Я добавил улов на выборку(), чтобы попытаться обработать исключения, но она по-прежнему не удается (и улов не называется). Я добавил catch на caches.open() и replyWith(), но то же самое.
Я знаю, что может игнорировать эти ошибки, но я бы лучше справился с ними и ничего не делал (в том числе не выводя их на консоль), поэтому я могу видеть значимые вещи в консоли, которую я выводил.
Как я могу остановить сообщения об ошибках?
Ошибка, когда установка службы является менее пробной, но это также было бы неплохо поймать и проигнорировать.
Да, это, кажется, консенсус, что вы не можете скрыть состояние сети оповещения :(Загвоздка еще не работал, но я сделал получить его работу. Смотрите мой окончательный код. Спасибо за вашу помощь. –