更新:
看起来谷歌也接受了快速破解,警告又回来了。
因此,从 Chrome93(2021 年 8 月)开始,快速破解将不再起作用:
self.addEventListener('fetch', function(event) {})
解决方案“暂时”有效(因为我们永远不知道 Google 以后会添加什么要求)
我发现了一篇不错的文章,它提供了一些解决方案,作者提供的第一个是 Network-Falling-Back-To-Cache 策略:
您的服务人员将首先尝试从您的服务器检索资源。然后当它不能这样做时——例如,因为你离线——从缓存中检索它(如果它存在的话)。
self.addEventListener('fetch', function(event) {
event.respondWith(async function() {
try{
var res = await fetch(event.request);
var cache = await caches.open('cache');
cache.put(event.request.url, res.clone());
return res;
}
catch(error){
return caches.match(event.request);
}
}());
});
您可以在文章中找到所有信息和替代解决方案:
https://javascript.plainenglish.io/your-pwa-is-going-to-break-in-august-2021-34982f329f40
我希望这将有助于未来的游客。
原答案:
您还需要fetch
在服务工作者文件中定义侦听器:
this.addEventListener('fetch', function (event) {
// it can be empty if you just want to get rid of that error
});