waimai / sw.js
Ethscriptions's picture
Upload 4 files
54ca146 verified
const CACHE_NAME = 'shangpin-pwa-v1';
const CORE_ASSETS = [
'./',
'./index.html',
'./manifest.webmanifest',
'./icons/icon.svg'
];
self.addEventListener('install', (event) => {
event.waitUntil(
caches.open(CACHE_NAME).then((cache) => cache.addAll(CORE_ASSETS))
);
self.skipWaiting();
});
self.addEventListener('activate', (event) => {
event.waitUntil(
caches.keys().then((keys) =>
Promise.all(
keys
.filter((key) => key !== CACHE_NAME)
.map((key) => caches.delete(key))
)
)
);
self.clients.claim();
});
self.addEventListener('fetch', (event) => {
const { request } = event;
if (request.method !== 'GET') return;
event.respondWith(
caches.match(request).then((cached) => {
if (cached) return cached;
return fetch(request)
.then((networkResponse) => {
if (request.url.startsWith(self.location.origin) && networkResponse && networkResponse.status === 200) {
const responseClone = networkResponse.clone();
caches.open(CACHE_NAME).then((cache) => cache.put(request, responseClone));
}
return networkResponse;
})
.catch(() => caches.match('./index.html'));
})
);
});