From 697d48007bb61daa4d6e390b984ddc51de2652bf Mon Sep 17 00:00:00 2001 From: FURK4NGG <105324908+FURK4NGG@users.noreply.github.com> Date: Mon, 30 Sep 2024 23:18:53 +0300 Subject: [PATCH] Update service-worker.js --- service-worker.js | 100 ++++++++++++++++------------------------------ 1 file changed, 35 insertions(+), 65 deletions(-) diff --git a/service-worker.js b/service-worker.js index 06020a4..7e65fa0 100644 --- a/service-worker.js +++ b/service-worker.js @@ -1,14 +1,12 @@ -const CACHE_NAME = 'my-site-cache-v16'; -const LIBS_CACHE_NAME = 'libs-cache-v1'; // Kütüphaneler için ayrı bir cache - -// Bu dizilerde dil kontrolü yapılır -let urlsToCache = [ +const CACHE_NAME = 'my-site-cache-v3'; // Versiyon numarası +const urlsToCache = [ '/', '/index.html', '/not_found_page.html', '/service-worker.js', '/img/ai.webp', '/img/app.webp', + '/img/character1.webp', '/img/cyber.webp', '/img/game.webp', '/img/web.webp', @@ -22,77 +20,49 @@ let urlsToCache = [ '/.htaccess.txt' ]; -// Kütüphaneler için URL'leri ekleyin -const libsToCache = [ - '/gsap.min.js', - '/ionicons.esm.js', - '/ionicons.js', - '/swiper-bundle.min.js', - '/darkmode-js.min.js' -]; +const CURRENT_VERSION = 'v3'; // Yeni versiyon numarası -// Kullanıcının dilini kontrol et -const userLang = navigator.language || navigator.userLanguage; - -// Eğer tarayıcı dili Türkçe ise /tr klasöründeki dosyaları ekle -if (userLang.startsWith('tr')) { - urlsToCache = urlsToCache.concat([ - '/home_tr.html?v=6', - '/CSS/tr/1.css?v=3', - '/CSS/tr/2.css?v=3', - '/JAVASCRIPT/tr/1.js?v=3' - ]); -} else { - // İngilizce dosyaları ekle - urlsToCache = urlsToCache.concat([ - '/home_en.html?v=6', - '/CSS/1.css?v=3', - '/CSS/2.css?v=3', - '/JAVASCRIPT/1.js?v=3' - ]); -} - -// Service Worker install event +// Install event: Versiyona bağlı olarak cache oluşturma self.addEventListener('install', event => { event.waitUntil( - Promise.all([ - caches.open(CACHE_NAME).then(cache => { - console.log('Opened cache for app'); + caches.open(CACHE_NAME) + .then(cache => { + console.log('Caching files...'); return cache.addAll(urlsToCache); - }), - caches.open(LIBS_CACHE_NAME).then(cache => { - console.log('Opened cache for libraries'); - return cache.addAll(libsToCache); }) - ]) ); }); -// Service Worker activate event -self.addEventListener('activate', event => { - const cacheWhitelist = [CACHE_NAME, LIBS_CACHE_NAME]; - event.waitUntil( - caches.keys().then(cacheNames => { - return Promise.all( - cacheNames.map(cacheName => { - if (!cacheWhitelist.includes(cacheName)) { - return caches.delete(cacheName); - } - }) - ); +// Fetch event: Cache'den veri sunulur, internetten varsa cache güncellenir +self.addEventListener('fetch', event => { + event.respondWith( + caches.match(event.request).then(response => { + return response || fetch(event.request); }) ); }); -// Service Worker fetch event -self.addEventListener('fetch', event => { - event.respondWith( - caches.match(event.request) - .then(response => { - if (response) { - return response; - } - return fetch(event.request); +// Activate event: Eski versiyon cache'leri temizlenir ve versiyona göre cache güncellenir +self.addEventListener('activate', event => { + const storedVersion = localStorage.getItem('cache-version'); + if (storedVersion !== CURRENT_VERSION) { + console.log(`New version detected: ${CURRENT_VERSION}. Updating cache...`); + event.waitUntil( + caches.keys().then(cacheNames => { + return Promise.all( + cacheNames.map(cacheName => { + if (cacheName !== CACHE_NAME) { + console.log(`Deleting old cache: ${cacheName}`); + return caches.delete(cacheName); + } + }) + ); + }).then(() => { + localStorage.setItem('cache-version', CURRENT_VERSION); + console.log(`Cache updated to version: ${CURRENT_VERSION}`); }) - ); + ); + } else { + console.log(`Cache version is up-to-date: ${CURRENT_VERSION}`); + } });