From 1d8e251fea49b0c01a1ff7a2fe9ef09b7915fb25 Mon Sep 17 00:00:00 2001 From: FURK4NGG <105324908+FURK4NGG@users.noreply.github.com> Date: Tue, 4 Mar 2025 14:49:51 +0300 Subject: [PATCH] Update service-worker.js --- service-worker.js | 76 ++++++++++++----------------------------------- 1 file changed, 19 insertions(+), 57 deletions(-) diff --git a/service-worker.js b/service-worker.js index 3a0a3f6..d49faac 100644 --- a/service-worker.js +++ b/service-worker.js @@ -1,5 +1,5 @@ -const CURRENT_VERSION = 'v75'; // Güncel versiyon -const CACHE_NAME = cache-v${CURRENT_VERSION}; // Cache ismi 'cache-vX' formatında +const CURRENT_VERSION = 'v76'; // Güncel versiyon numarasını belirleyin +const CACHE_NAME = `cache-${CURRENT_VERSION}`; const urlsToCache = [ '/', @@ -38,83 +38,45 @@ const urlsToCache = [ '/.htaccess.txt' ]; -// Install event - Cache dosyalarını ekle +// Install event - Cache dosyaları yükle self.addEventListener('install', event => { event.waitUntil( caches.open(CACHE_NAME) .then(cache => { - console.log(✅ Caching files for version: ${CURRENT_VERSION}); - return cache.addAll(urlsToCache); // Tüm dosyaları cache'e ekle + console.log(`✅ Caching files for version: ${CURRENT_VERSION}`); + 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 => { event.respondWith( - 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'); - }); - }) + caches.match(event.request).then(response => { + return response || fetch(event.request); + }) ); }); -// 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 => { event.waitUntil( 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 + const cacheVersion = parseInt(cacheName.replace('cache-v', ''), 10); + const incomingVersion = parseInt(CURRENT_VERSION.replace('v', ''), 10); + + // 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(() => { - console.log(✅ Cache updated to version: ${CURRENT_VERSION}); - return self.clients.claim(); // Yeni cache versiyonunu hemen aktif et + console.log(`✅ Cache updated to version: ${CURRENT_VERSION}`); + return self.clients.claim(); // Yeni cache'i aktif et }) ); });