【发布时间】:2019-09-08 16:18:08
【问题描述】:
我想将我的普通网站变成一个渐进式网络应用程序。为此,一切都结束了。该网站负责,我已经设置了清单。现在最后一部分来找我了。将网站保存到设备缓存的 ServiceWorker。我的问题是我找不到一个简单的解决方案。因为对于我的网站来说,每次我进行更新时用户运行新版本很重要。您是否知道如何让 ServiceWorker 在用户打开应用程序后检查是否有任何更改,然后删除旧缓存并根据新文件和新代码创建一个新缓存?
如果有人可以提供代码示例,那就太好了。
我的 HTML 端:
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('./sw.js')
.then(reg => console.log(reg))
.catch(err => console.log(err));
}
</script>
这里是 sw.js:
self.addEventListener('install', event => event.waitUntil(
caches.open('web_pwa').then(cache => cache.add('/'))
));
self.addEventListener('fetch', event => event.respondWith(
caches.open('web_pwa')
.then(cache => cache.match(event.request))
.then(response => response || fetch(event.request))
));
【问题讨论】:
标签: javascript html progressive-web-apps