С помощью сервисного работника я хочу вернуть ответ из кеша, если соединение с сервером отсутствует. Тогда, если в кеше нет правильного ответа, я хочу вернуть пользовательский ответ.Возврат ответа из кеша, когда нет соединения с сервером
На данный момент, у меня есть этот код:
this.addEventListener('fetch', function (event) {
event.respondWith(
timeout(5000, fetch(event.request)).catch(function() {
return caches.match(event.request);
})
);
});
Я хочу иметь что-то вроде этого:
this.addEventListener('fetch', function (event) {
event.respondWith(
timeout(5000, fetch(event.request)).catch(function() {
caches.match(event.request).then(function(cacheResponse) {
return cacheResponse;
}).catch(function() {
return new Response('No cache found');
})
})
);
});
или даже лучше было бы
this.addEventListener('fetch', function (event) {
event.respondWith(
timeout(5000, fetch(event.request)).catch(function() {
caches.match(event.request).then(function(cacheResponse) {
return cacheResponse;
}).catch(function() {
return caches.match(offlineMessageUrl);
})
})
);
});
, но это не за работой.
plunker/jsfiddle/codepen? сложить вместе? – SoluableNonagon
Как можно возиться с сервисным работником? – dandavis
Я думаю, вы можете, поставив своего обслуживающего работника в отдельный jsfiddle. Например. https://jsfiddle.net/zalun/d10vsucu/ и https://jsfiddle.net/zalun/d80qawf9/. – Marco