Update service-worker.js

This commit is contained in:
FURK4NGG
2024-09-11 17:06:31 +03:00
committed by GitHub
parent 9366127b3b
commit 7b4babd8bc
+70 -87
View File
@@ -1,100 +1,83 @@
const FILE_VERSIONS = { const CACHE_VERSION = 'v1'; // Update this version number to trigger cache refresh
'/index.html': '13', const CACHE_NAME = `My-Site-Cache-${CACHE_VERSION}`;
'/home_en.html': '15',
'/home_tr.html': '14',
'/not_found_page.html': '1',
'/CSS/1.css': '1',
'/CSS/2.css': '1',
'/CSS/tr/1.css': '1',
'/CSS/tr/2.css': '1',
'/JAVASCRIPT/1.js': '1',
'/JAVASCRIPT/tr/1.js': '1',
'/service-worker.js': '1',
'/img/ai.webp': '1',
'/img/app.webp': '1',
'/img/cyber.webp': '1',
'/img/game.webp': '1',
'/img/web.webp': '1',
'/img/profile_photo1.webp': '1',
'/img/robotic.webp': '1',
'/img/up.webp': '1',
'/img/icon.ico': '1',
'/sitemap.xml': '1',
'/manifest.json': '1',
'/robots.txt': '1',
'/.htaccess.txt': '1'
};
const CACHE_NAME = 'my-site-cache-v1'; let urlsToCache = [
'/',
'/index.html',
'/not_found_page.html',
'/service-worker.js',
'/img/ai.webp',
'/img/app.webp',
'/img/cyber.webp',
'/img/game.webp',
'/img/web.webp',
'/img/profile_photo1.webp',
'/img/robotic.webp',
'/img/up.webp',
'/img/icon.ico',
'/sitemap.xml',
'/manifest.json',
'/robots.txt',
'/.htaccess.txt'
];
// Dosyaları önbelleğe al // Kullanıcının dilini kontrol et
const cacheFiles = async () => { const userLang = navigator.language || navigator.userLanguage;
const cache = await caches.open(CACHE_NAME);
await cache.addAll(Object.keys(FILE_VERSIONS));
};
// Versiyon kontrolü ile fetch // Eğer tarayıcı dili Türkçe ise /tr klasöründeki dosyaları ekle
const cacheFirst = async (request) => { if (userLang.startsWith('tr')) {
const url = new URL(request.url); urlsToCache = urlsToCache.concat([
const newVersion = FILE_VERSIONS[url.pathname] || '0'; '/home_tr.html',
'/CSS/tr/1.css',
const cache = await caches.open(CACHE_NAME); '/CSS/tr/2.css',
const cachedResponse = await caches.match(request); '/JAVASCRIPT/tr/1.js'
]);
if (cachedResponse) {
const cachedVersion = new URL(cachedResponse.url).searchParams.get('v') || '0';
if (newVersion === cachedVersion) {
return cachedResponse;
} else if (parseInt(newVersion, 10) > parseInt(cachedVersion, 10)) {
return fetch(request).then(response => {
if (response.ok) {
const responseClone = response.clone();
cache.put(request, responseClone);
}
return response;
});
} else { } else {
return fetch(request); // İngilizce dosyaları ekle
urlsToCache = urlsToCache.concat([
'/home_en.html',
'/CSS/1.css',
'/CSS/2.css',
'/JAVASCRIPT/1.js'
]);
} }
} else {
try {
const response = await fetch(request);
if (response.ok) {
const responseClone = response.clone();
cache.put(request, responseClone);
}
return response;
} catch (error) {
// İstemci tarafında yanıt alınamadığında hata yanıtı döndür
return new Response('Network error happened', {
status: 408,
headers: { 'Content-Type': 'text/plain' },
});
}
}
};
// Service Worker olayları // Service Worker install event
self.addEventListener('install', (event) => { self.addEventListener('install', event => {
event.waitUntil( event.waitUntil(
cacheFiles() caches.open(CACHE_NAME)
); .then(cache => {
}); console.log('Opened cache');
return cache.addAll(urlsToCache);
self.addEventListener('activate', (event) => {
event.waitUntil(
caches.keys().then(keys => {
return Promise.all(keys.map(key => {
if (key !== CACHE_NAME) {
return caches.delete(key);
}
}));
}) })
); );
}); });
self.addEventListener('fetch', (event) => { // Service Worker activate event
event.respondWith( self.addEventListener('activate', event => {
cacheFirst(event.request) const cacheWhitelist = [CACHE_NAME];
event.waitUntil(
caches.keys().then(cacheNames => {
return Promise.all(
cacheNames.map(cacheName => {
if (!cacheWhitelist.includes(cacheName)) {
return caches.delete(cacheName);
}
})
);
})
);
});
// Service Worker fetch event
self.addEventListener('fetch', event => {
event.respondWith(
caches.match(event.request)
.then(response => {
if (response) {
return response;
}
return fetch(event.request);
})
); );
}); });