Update service-worker.js

This commit is contained in:
FURK4NGG
2025-03-04 15:04:36 +03:00
committed by GitHub
parent ab1a701c7d
commit 5fe18ff375
+55 -40
View File
@@ -1,7 +1,7 @@
const CURRENT_VERSION = 'v80'; const CACHE_NAME = 'my-cache-v1'; // İlk versiyon
const CACHE_NAME = `cache-${CURRENT_VERSION}`; const CACHE_VERSION = 2; // Yeni versiyon numarası
const URLS_TO_CACHE = [
const urlsToCache = [ // Önbelleğe alınacak URL'ler
'/', '/',
'/index.html', '/index.html',
'/home_en.html', '/home_en.html',
@@ -38,50 +38,65 @@ const urlsToCache = [
'/.htaccess.txt' '/.htaccess.txt'
]; ];
// 1️⃣ Service Worker yüklenirken en son cache versiyonunu al // Service Worker'ı kur
self.addEventListener('install', event => { self.addEventListener('install', (event) => {
event.waitUntil( event.waitUntil(
caches.open(CACHE_NAME).then(cache => { caches.open(CACHE_NAME).then((cache) => {
console.log(`${CURRENT_VERSION} için dosyalar cache'e ekleniyor...`); return cache.addAll(URLS_TO_CACHE);
return cache.addAll(urlsToCache);
}) })
); );
}); });
// 2️⃣ Fetch event - İlk olarak internetten dene, sonra cache'e bak // Service Worker etkinleştirildiğinde
self.addEventListener('fetch', event => { self.addEventListener('activate', (event) => {
event.respondWith( event.waitUntil(
fetch(event.request) caches.keys().then((cacheNames) => {
.then(response => { return Promise.all(
// Eğer online isek ve güncel veriye ulaştıysak, cache'i güncelle cacheNames.map((cacheName) => {
return caches.open(CACHE_NAME).then(cache => { // Eski cache'leri sil
cache.put(event.request, response.clone()); if (cacheName !== CACHE_NAME) {
return response; return caches.delete(cacheName);
}); }
}) })
.catch(() => { );
// Offline ise cache'den çek })
);
});
// Fetch olayını dinle
self.addEventListener('fetch', (event) => {
event.respondWith(
caches.match(event.request).then((response) => {
// Eğer cache'de varsa, onu döndür
if (response) {
return response;
}
// Eğer cache'de yoksa, internetten al
return fetch(event.request).then((networkResponse) => {
// Yeni versiyon numarasını kontrol et
if (CACHE_VERSION > getCurrentCacheVersion()) {
// Eski cache'i sil
caches.delete(CACHE_NAME).then(() => {
// Yeni cache'i ekle
return caches.open(CACHE_NAME).then((cache) => {
return cache.put(event.request, networkResponse.clone());
});
});
}
return networkResponse;
});
}).catch(() => {
// Eğer offline isek, eski cache'i kullan
return caches.match(event.request); return caches.match(event.request);
}) })
); );
}); });
// 3️⃣ Aktivasyon (Eski cache'leri temizleme) // Mevcut cache versiyonunu döndüren yardımcı fonksiyon
self.addEventListener('activate', event => { function getCurrentCacheVersion() {
event.waitUntil( // Burada mevcut cache versiyonunu döndürmek için bir yöntem belirleyebilirsin
caches.keys().then(cacheNames => { // Örneğin, localStorage veya başka bir yöntemle saklayabilirsin
return Promise.all( return CACHE_VERSION; // Örnek olarak sabit bir değer döndürüyoruz
cacheNames.map(cacheName => { }
// Eski versiyonları temizle
if (cacheName.startsWith('cache-v') && cacheName !== CACHE_NAME) {
console.log(`🗑️ Eski cache siliniyor: ${cacheName}`);
return caches.delete(cacheName);
}
})
);
}).then(() => {
console.log(`🚀 Yeni cache aktif: ${CURRENT_VERSION}`);
return self.clients.claim();
})
);
});