94 lines
2.2 KiB
JavaScript
94 lines
2.2 KiB
JavaScript
"use strict";
|
|
|
|
const CACHE_NAME = "offline-cache-v1";
|
|
const OFFLINE_URL = '/offline.html';
|
|
|
|
const filesToCache = [
|
|
OFFLINE_URL
|
|
];
|
|
|
|
self.addEventListener("install", (event) => {
|
|
event.waitUntil(
|
|
caches.open(CACHE_NAME)
|
|
.then((cache) => cache.addAll(filesToCache))
|
|
);
|
|
});
|
|
|
|
self.addEventListener("fetch", (event) => {
|
|
if (event.request.mode === 'navigate') {
|
|
event.respondWith(
|
|
fetch(event.request)
|
|
.catch(() => {
|
|
return caches.match(OFFLINE_URL);
|
|
})
|
|
);
|
|
} else {
|
|
event.respondWith(
|
|
caches.match(event.request)
|
|
.then((response) => {
|
|
return response || fetch(event.request);
|
|
})
|
|
);
|
|
}
|
|
});
|
|
|
|
self.addEventListener('activate', (event) => {
|
|
event.waitUntil(
|
|
caches.keys().then((cacheNames) => {
|
|
return Promise.all(
|
|
cacheNames.map((cacheName) => {
|
|
if (cacheName !== CACHE_NAME) {
|
|
return caches.delete(cacheName);
|
|
}
|
|
})
|
|
);
|
|
})
|
|
);
|
|
});
|
|
|
|
// const CACHE_NAME = 'pds-app-cache-v1';
|
|
// const OFFLINE_URL = '/offline.html';
|
|
|
|
// const urlsToCache = [
|
|
// '/',
|
|
// '/admin',
|
|
// OFFLINE_URL,
|
|
// '/icons/icon-192x192.png',
|
|
// '/icons/icon-512x512.png'
|
|
// ];
|
|
|
|
// self.addEventListener('install', event => {
|
|
// event.waitUntil(
|
|
// caches.open(CACHE_NAME)
|
|
// .then(cache => cache.addAll(urlsToCache))
|
|
// .then(self.skipWaiting())
|
|
// );
|
|
// });
|
|
|
|
// self.addEventListener('activate', event => {
|
|
// event.waitUntil(
|
|
// caches.keys().then(keys =>
|
|
// Promise.all(keys.map(key => {
|
|
// if (key !== CACHE_NAME) return caches.delete(key);
|
|
// }))
|
|
// )
|
|
// );
|
|
// self.clients.claim();
|
|
// });
|
|
|
|
// self.addEventListener('fetch', event => {
|
|
// if (event.request.mode === 'navigate') {
|
|
// event.respondWith(
|
|
// fetch(event.request).catch(() =>
|
|
// caches.match(OFFLINE_URL)
|
|
// )
|
|
// );
|
|
// } else {
|
|
// event.respondWith(
|
|
// caches.match(event.request).then(response =>
|
|
// response || fetch(event.request)
|
|
// )
|
|
// );
|
|
// }
|
|
// });
|