Update service-worker.js

This commit is contained in:
FURK4NGG
2025-03-04 14:49:51 +03:00
committed by GitHub
parent 5724bba04c
commit 1d8e251fea
+18 -56
View File
@@ -1,5 +1,5 @@
const CURRENT_VERSION = 'v75'; // Güncel versiyon const CURRENT_VERSION = 'v76'; // Güncel versiyon numarasını belirleyin
const CACHE_NAME = cache-v${CURRENT_VERSION}; // Cache ismi 'cache-vX' formatında const CACHE_NAME = `cache-${CURRENT_VERSION}`;
const urlsToCache = [ const urlsToCache = [
'/', '/',
@@ -38,83 +38,45 @@ const urlsToCache = [
'/.htaccess.txt' '/.htaccess.txt'
]; ];
// Install event - Cache dosyalarını ekle // Install event - Cache dosyalarıkle
self.addEventListener('install', event => { self.addEventListener('install', event => {
event.waitUntil( event.waitUntil(
caches.open(CACHE_NAME) caches.open(CACHE_NAME)
.then(cache => { .then(cache => {
console.log( Caching files for version: ${CURRENT_VERSION}); console.log(`✅ Caching files for version: ${CURRENT_VERSION}`);
return cache.addAll(urlsToCache); // Tüm dosyaları cache'e ekle return cache.addAll(urlsToCache);
}) })
); );
}); });
// Fetch event - İnternetten dosya al, yoksa cache'den al // Fetch event - Cache'deki dosyaları kullan, yoksa ağdan al
self.addEventListener('fetch', event => { self.addEventListener('fetch', event => {
event.respondWith( event.respondWith(
fetch(event.request) caches.match(event.request).then(response => {
.then(response => { return response || fetch(event.request);
// Eğer internetten başarılı bir şekilde dosya alındıysa
if (!response || response.status !== 200 || response.type !== 'basic') {
return response; // Geçerli değilse, direkt döndür
}
// Cache'e yeni dosyayı ekleyelim
caches.open(CACHE_NAME).then(cache => {
cache.match(event.request).then(cachedResponse => {
// Yeni versiyon, eski versiyondan büyükse eski cache'i silip yeni cache'i ekle
if (parseInt(CURRENT_VERSION.replace('v', ''), 10) > parseInt(CACHE_NAME.replace('cache-v', ''), 10)) {
console.log(🚨 New version found. Updating cache...);
caches.keys().then(cacheNames => {
return Promise.all(
cacheNames.map(cacheName => {
if (cacheName.startsWith('cache-v') && cacheName !== CACHE_NAME) {
console.log(🗑 Deleting old cache: ${cacheName});
return caches.delete(cacheName); // Eski cache'i sil
}
})
);
}).then(() => {
// Yeni versiyon cache'i ekle
cache.put(event.request, response.clone());
});
}
});
});
// Yeni versiyonlu cache'i döndür
return response;
})
.catch(() => {
// Eğer offline durumdaysak, cache'den döndür
return caches.match(event.request).then(cachedResponse => {
if (cachedResponse) {
console.log('🗂 Offline - Serving from cache');
return cachedResponse; // Cache'den döndür
}
// Cache'de de yoksa, 404 sayfasını döndür
return caches.match('/404.html');
});
}) })
); );
}); });
// Activate event - Eski cache'leri sil ve yeni cache'i aktif et // Activate event - Eski cache'leri sil ve yeni cache'i ekle
self.addEventListener('activate', event => { self.addEventListener('activate', event => {
event.waitUntil( event.waitUntil(
caches.keys().then(cacheNames => { caches.keys().then(cacheNames => {
return Promise.all( return Promise.all(
cacheNames.map(cacheName => { cacheNames.map(cacheName => {
if (cacheName.startsWith('cache-v') && cacheName !== CACHE_NAME) { const cacheVersion = parseInt(cacheName.replace('cache-v', ''), 10);
console.log(🗑 Deleting old cache: ${cacheName}); const incomingVersion = parseInt(CURRENT_VERSION.replace('v', ''), 10);
return caches.delete(cacheName); // Eski cache'i sil
// Yeni versiyon daha büyükse eski cache'leri sil ve yeni cache'i ekle
if (cacheName.startsWith('cache-') && cacheVersion !== incomingVersion) {
console.log(`🗑️ Deleting old cache: ${cacheName}`);
return caches.delete(cacheName);
} }
}) })
); );
}).then(() => { }).then(() => {
console.log( Cache updated to version: ${CURRENT_VERSION}); console.log(`✅ Cache updated to version: ${CURRENT_VERSION}`);
return self.clients.claim(); // Yeni cache versiyonunu hemen aktif et return self.clients.claim(); // Yeni cache'i aktif et
}) })
); );
}); });