Refactor service worker to streamline caching logic and improve offline support

This commit is contained in:
dhanabalan
2025-11-04 14:25:05 +05:30
parent e729742aa3
commit dec1a436a3

View File

@@ -1,93 +1,93 @@
"use strict"; "use strict";
// const CACHE_NAME = "offline-cache-v1"; 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 OFFLINE_URL = '/offline.html';
const urlsToCache = [ const filesToCache = [
'/', OFFLINE_URL
'/admin',
OFFLINE_URL,
'/icons/icon-192x192.png',
'/icons/icon-512x512.png'
]; ];
self.addEventListener('install', event => { self.addEventListener("install", (event) => {
event.waitUntil( event.waitUntil(
caches.open(CACHE_NAME) caches.open(CACHE_NAME)
.then(cache => cache.addAll(urlsToCache)) .then((cache) => cache.addAll(filesToCache))
.then(self.skipWaiting())
); );
}); });
self.addEventListener('activate', event => { self.addEventListener("fetch", (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') { if (event.request.mode === 'navigate') {
event.respondWith( event.respondWith(
fetch(event.request).catch(() => fetch(event.request)
caches.match(OFFLINE_URL) .catch(() => {
) return caches.match(OFFLINE_URL);
})
); );
} else { } else {
event.respondWith( event.respondWith(
caches.match(event.request).then(response => caches.match(event.request)
response || fetch(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)
// )
// );
// }
// });