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); }) ); });