Question 68
Question
Answer
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/service-worker.js')
.then(registration => console.log('Service worker registered:', registration))
.catch(error => console.log('Service worker registration failed:', error));
});
}self.addEventListener('install', (event) => {
event.waitUntil(
caches.open('my-cache')
.then(cache => cache.addAll([
'/',
'/index.html',
'/style.css',
'/script.js',
'/images/logo.png'
]))
);
});
self.addEventListener('fetch', (event) => {
event.respondWith(
caches.match(event.request)
.then(response => {
if (response) {
return response; // Return cached response
} else {
// Fetch from network if not in cache
return fetch(event.request)
.then(res => {
// Clone and cache the fetched response
const clonedResponse = res.clone();
caches.open('my-cache').then(cache => cache.put(event.request, clonedResponse));
return res;
});
}
})
);
});Last updated