/* 小暖 PWA Service Worker:网络优先,断网时回退缓存 */ const CACHE = 'xiaonuan-v1'; self.addEventListener('install', (e) => { e.waitUntil(caches.open(CACHE).then((c) => c.addAll(['/', '/index.html', '/icon.svg']))); self.skipWaiting(); }); self.addEventListener('activate', (e) => { e.waitUntil(clients.claim()); }); self.addEventListener('fetch', (e) => { if (e.request.method !== 'GET') return; e.respondWith( fetch(e.request) .then((res) => { const copy = res.clone(); caches.open(CACHE).then((c) => c.put(e.request, copy)); return res; }) .catch(() => caches.match(e.request)) ); });