49 lines
1.3 KiB
JavaScript
49 lines
1.3 KiB
JavaScript
self.addEventListener('install', (event) => {
|
||
event.waitUntil(
|
||
fetch('/version.json')
|
||
.then((response) => response.json())
|
||
.then((versionData) => {
|
||
// Versiyon verisini aldıktan sonra, cache'e ekle
|
||
const urlsToCache = Object.keys(versionData).map((file) => {
|
||
return `${file}?v=${versionData[file]}`;
|
||
});
|
||
|
||
return caches.open('v1').then((cache) => {
|
||
return cache.addAll(urlsToCache);
|
||
});
|
||
})
|
||
);
|
||
});
|
||
|
||
self.addEventListener('activate', (event) => {
|
||
const cacheWhitelist = ['v1']; // Yeni cache ismi
|
||
event.waitUntil(
|
||
caches.keys().then((cacheNames) => {
|
||
return Promise.all(
|
||
cacheNames.map((cacheName) => {
|
||
if (!cacheWhitelist.includes(cacheName)) {
|
||
return caches.delete(cacheName);
|
||
}
|
||
})
|
||
);
|
||
})
|
||
);
|
||
});
|
||
|
||
self.addEventListener('fetch', (event) => {
|
||
event.respondWith(
|
||
caches.match(event.request).then((cachedResponse) => {
|
||
return (
|
||
cachedResponse ||
|
||
fetch(event.request).then((response) => {
|
||
const clonedResponse = response.clone();
|
||
caches.open('v1').then((cache) => {
|
||
cache.put(event.request, clonedResponse);
|
||
});
|
||
return response;
|
||
})
|
||
);
|
||
})
|
||
);
|
||
});
|