self.addEventListener('install', e => {
let timeStamp = Date.now();
caches.open('airhorner').then(cache => {
`/index.html?timestamp=${timeStamp}`,
`/styles/main.css?timestamp=${timeStamp}`,
`/scripts/main.min.js?timestamp=${timeStamp}`,
`/scripts/comlink.global.js?timestamp=${timeStamp}`,
`/scripts/messagechanneladapter.global.js?timestamp=${timeStamp}`,
`/sounds/airhorn.mp3?timestamp=${timeStamp}`
.then(() => self.skipWaiting());
self.addEventListener('activate', event => {
event.waitUntil(self.clients.claim());
self.addEventListener('fetch', event => {
caches.match(event.request, { ignoreSearch: true }).then(response => {
// 默认不会保护 Cookie,可以使用 fetch(url, {credentials: 'include'}) 来发送 Cookie
return response || fetch(event.request);