Aleksmorshen commited on
Commit
0eeb37a
·
verified ·
1 Parent(s): da821f5

Create service-worker.js

Browse files
Files changed (1) hide show
  1. service-worker.js +51 -0
service-worker.js ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const CACHE_NAME = 'teplostil-cache-v3';
2
+ const URLS_TO_CACHE = [
3
+ '/',
4
+ '/index.html',
5
+ '/style.css',
6
+ '/icon.png',
7
+ '/icon-512x512.png', // Добавил большую иконку
8
+ '/manifest.json' // Добавил манифест
9
+ ];
10
+
11
+ self.addEventListener('install', (event) => {
12
+ event.waitUntil(
13
+ caches.open(CACHE_NAME).then((cache) => {
14
+ console.log('Opened cache');
15
+ return cache.addAll(URLS_TO_CACHE);
16
+ })
17
+ );
18
+ self.skipWaiting(); // Применяет новый SW сразу
19
+ });
20
+
21
+ self.addEventListener('activate', (event) => {
22
+ event.waitUntil(
23
+ caches.keys().then((cacheNames) => {
24
+ return Promise.all(
25
+ cacheNames.map((cacheName) => {
26
+ if (cacheName !== CACHE_NAME) {
27
+ console.log('Deleting old cache:', cacheName);
28
+ return caches.delete(cacheName);
29
+ }
30
+ })
31
+ );
32
+ })
33
+ );
34
+ self.clients.claim(); // Обновляет SW без перезапуска
35
+ });
36
+
37
+ self.addEventListener('fetch', (event) => {
38
+ if (event.request.mode === 'navigate') {
39
+ event.respondWith(
40
+ caches.match('/index.html').then((response) => {
41
+ return response || fetch(event.request);
42
+ })
43
+ );
44
+ } else {
45
+ event.respondWith(
46
+ caches.match(event.request).then((response) => {
47
+ return response || fetch(event.request);
48
+ })
49
+ );
50
+ }
51
+ });