From 987da98a4eeeb979b2604cb44d078ec624d93f5b Mon Sep 17 00:00:00 2001 From: FURK4NGG <105324908+FURK4NGG@users.noreply.github.com> Date: Tue, 4 Mar 2025 20:58:17 +0300 Subject: [PATCH] Update service-worker.js --- service-worker.js | 79 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 66 insertions(+), 13 deletions(-) diff --git a/service-worker.js b/service-worker.js index 4d1d35e..9194b43 100644 --- a/service-worker.js +++ b/service-worker.js @@ -1,17 +1,70 @@ -caches.keys().then((cacheNames) => { - cacheNames.forEach((cacheName) => { - caches.open(cacheName).then((cache) => { - cache.keys().then((requests) => { - requests.forEach((request) => { - if (request.url.startsWith(location.origin)) { - cache.delete(request).then((deleted) => { - if (deleted) { - console.log(`🗑️ Silindi: ${request.url}`); - } - }); +const CACHE_VERSION = 7; // Güncel cache versiyonu +const CACHE_NAME = `my-cache-v${CACHE_VERSION}`; // Önbellek adı +const URLS_TO_CACHE = [ + '/', '/index.html', '/home_en.html', '/home_tr.html', '/404.html', + '/FONTS/Inconsolata.woff2', '/FONTS/Jaro.woff2', '/FONTS/Monomakh.woff2', + '/FONTS/Montserrat.woff2', '/FONTS/TacOne.woff2', '/FONTS/Teko.woff2', + '/JAVASCRIPT/1.js', '/JAVASCRIPT/tr/1.js', '/JAVASCRIPT/darkmode-js.min.js', + '/JAVASCRIPT/gsap.min.js', '/JAVASCRIPT/swiper-bundle.min.js', + '/service-worker.js', '/img/profile_photo1.webp', '/img/character1.webp', + '/img/character2.webp', '/img/character3.webp', '/img/ai.webp', + '/img/app.webp', '/img/cyber.webp', '/img/game.webp', '/img/robotic.webp', + '/img/web.webp', '/img/up.webp', '/img/icon.ico', '/sitemap.xml', + '/manifest.json', '/robots.txt', '/.htaccess.txt' +]; + +// 📌 **localStorage'dan eski versiyonu al** +const oldCacheVersion = localStorage.getItem('cache_version') || 0; + +// 🔄 **Service Worker yüklenirken internetten yeni cache’i al** +self.addEventListener('install', (event) => { + event.waitUntil( + caches.open(CACHE_NAME).then(async (cache) => { + console.log(`🔄 Yeni cache yükleniyor: v${CACHE_VERSION}`); + + for (let url of URLS_TO_CACHE) { + try { + await cache.add(url); + console.log(`✅ Cache eklendi: ${url}`); + } catch (error) { + console.error(`❌ Cache eklenemedi: ${url}`, error); + } + } + }) + ); +}); + +// 🚀 **Aktif olunca eski cache'leri temizle ve yeni versiyonu kaydet** +self.addEventListener('activate', (event) => { + event.waitUntil( + caches.keys().then((cacheNames) => { + return Promise.all( + cacheNames.map((cacheName) => { + if (cacheName.startsWith("my-cache-v") && cacheName !== CACHE_NAME) { + console.log(`🗑️ Eski cache siliniyor: ${cacheName}`); + return caches.delete(cacheName); } + }) + ); + }).then(() => { + console.log(`💾 Yeni versiyon kaydedildi: v${CACHE_VERSION}`); + localStorage.setItem('cache_version', CACHE_VERSION); + }) + ); +}); + +// 🔍 **Cache'i kontrol et, yoksa internetten al ve kaydet** +self.addEventListener('fetch', (event) => { + event.respondWith( + caches.match(event.request).then((response) => { + if (response) return response; + + return fetch(event.request).then((networkResponse) => { + return caches.open(CACHE_NAME).then((cache) => { + cache.put(event.request, networkResponse.clone()); + return networkResponse; }); }); - }); - }); + }).catch(() => caches.match(event.request)) + ); });