Update service-worker.js
This commit is contained in:
+18
-56
@@ -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ı yü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
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user