Update service-worker.js

This commit is contained in:
FURK4NGG
2025-03-04 14:46:21 +03:00
committed by GitHub
parent 952e8b0518
commit 5724bba04c
+57 -15
View File
@@ -1,5 +1,5 @@
const CURRENT_VERSION = 'v74';
const CACHE_NAME = `cache-${CURRENT_VERSION}`;
const CURRENT_VERSION = 'v75'; // Güncel versiyon
const CACHE_NAME = cache-v${CURRENT_VERSION}; // Cache ismi 'cache-vX' formatında
const urlsToCache = [
'/',
@@ -38,41 +38,83 @@ const urlsToCache = [
'/.htaccess.txt'
];
// Install event - cache files
// Install event - Cache dosyalarını ekle
self.addEventListener('install', event => {
event.waitUntil(
caches.open(CACHE_NAME)
.then(cache => {
console.log(`Caching files for version: ${CURRENT_VERSION}`);
return cache.addAll(urlsToCache);
console.log( Caching files for version: ${CURRENT_VERSION});
return cache.addAll(urlsToCache); // Tüm dosyaları cache'e ekle
})
);
});
// Fetch event - serve from cache if available, else fetch from network
// Fetch event - İnternetten dosya al, yoksa cache'den al
self.addEventListener('fetch', event => {
event.respondWith(
caches.match(event.request).then(response => {
return response || fetch(event.request);
})
fetch(event.request)
.then(response => {
// 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 - delete old caches if version is different
// Activate event - Eski cache'leri sil ve yeni cache'i aktif et
self.addEventListener('activate', event => {
event.waitUntil(
caches.keys().then(cacheNames => {
return Promise.all(
cacheNames.map(cacheName => {
if (cacheName.startsWith('cache-') && cacheName !== CACHE_NAME) {
console.log(`Deleting old cache: ${cacheName}`);
return caches.delete(cacheName);
if (cacheName.startsWith('cache-v') && cacheName !== CACHE_NAME) {
console.log(🗑 Deleting old cache: ${cacheName});
return caches.delete(cacheName); // Eski cache'i sil
}
})
);
}).then(() => {
console.log(`Cache updated to version: ${CURRENT_VERSION}`);
return self.clients.claim();
console.log( Cache updated to version: ${CURRENT_VERSION});
return self.clients.claim(); // Yeni cache versiyonunu hemen aktif et
})
);
});