我想要实现的目标:
用loader/spinner渲染页面
如果service-worker.js已注册并处于活动状态,则检查更新
updatefound安装了新版本,则重新加载页面service-worker.js
updatefound,意味着新的安装,删除装载机我正在使用sw-precache模块生成service-worker.js并遵循注册码:
window.addEventListener('load', function() {
// show loader
addLoader();
navigator.serviceWorker.register('service-worker.js')
.then(function(swRegistration) {
// react to changes in `service-worker.js`
swRegistration.onupdatefound = function() {
var installingWorker = swRegistration.installing;
installingWorker.onstatechange = function() {
if(installingWorker.state === 'installed' && navigator.serviceWorker.controller){
// updated content installed
window.location.reload();
} else if (installingWorker.state === 'installed'){
// new sw registered and content cached
removeLoader();
}
};
}
if(swRegistration.active){
// here I know that …Run Code Online (Sandbox Code Playgroud)