Сначала я всегда вижу кэш со статическими ресурсами для создания PWA в автономном режиме.Но возможно ли кешировать URL-адрес и обслуживать его из кеша первым при следующем рендеринге и обновлять кеш при необходимости?
На данный момент в моем PWA я копирую все просмотренные URL-адреса, но не могу обслуживать кешпервый: /
Событие моего извлечения:
self.addEventListener("fetch", event => {
const updateCache = request => {
return caches
.open(CACHE_NAME)
.then(cache => {
return fetch(request)
.then(response => {
console.log(`[PWA] add page to offline ${response.url}`);
return cache.put(request, response);
})
.catch(error => console.log(error));
})
.catch(error => console.log(error));
};
event.waitUntil(updateCache(event.request));
event.respondWith(
fetch(event.request).catch(error => {
console.log(
`[PWA] Network request Failed. Serving content from cache: ${error}`
);
// Check to see if you have it in the cache
// Return response
// If not in the cache, then return error page
return caches
.open(CACHE_NAME)
.then(cache => {
return cache.match(event.request).then(matching => {
const report =
!matching || matching.status == 404
? Promise.reject("no-match")
: matching;
return report;
});
})
.catch(error => console.log(error));
})
);
});