File size: 1,155 Bytes
e9b92bb
ae22039
727ad73
bc241ad
727ad73
 
 
 
bc241ad
e9b92bb
727ad73
ae22039
2b342f6
 
ae22039
 
2b342f6
 
727ad73
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2b342f6
ae22039
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
const CACHE_NAME = 'pawmatch-v1';

// 需要快取的檔案清單
const urlsToCache = [
    './',
    './manifest.json',
    './assets/icon-192.png',
    './assets/icon-512.png'
];

// 安裝 Service Worker
self.addEventListener('install', event => {
    event.waitUntil(
        caches.open(CACHE_NAME)
            .then(cache => {
                console.log('快取開啟成功');
                return cache.addAll(urlsToCache);
            })
            .catch(error => {
                console.error('快取檔案失敗:', error);
            })
    );
});

// 處理檔案請求
self.addEventListener('fetch', event => {
    event.respondWith(
        caches.match(event.request)
            .then(response => {
                // 如果在快取中找到檔案,就回傳快取的版本
                if (response) {
                    return response;
                }
                // 否則發送網路請求
                return fetch(event.request);
            })
            .catch(error => {
                console.error('讀取檔案失敗:', error);
                return fetch(event.request);
            })
    );
});