PWA 服务辅助角色无法在没有刷新页或 F5 的情况下进行更新



下午好,我有一个带有活动service-worker的PWA应用程序要更新。当我进入PWA或做F5时,它可以正常工作。但问题是其中一个PWA屏幕是一个仪表板,客户端可以在其中呆上几天(因此它不会做F5),它应该在没有F5的情况下更新。我正在测试setInterval(),但它不会捕获更新,直到F5完成。

代码运行(我每5秒看到一次console.log),但是直到我执行F5

才找到更新。我app.component:

initializeApp() {
setInterval(() => { 
console.log("cheking updates")
if (this.swUpdate.available) {
this.swUpdate.available.subscribe(() => {
if (confirm("a new version si available."))
window.location.reload();
});
}
}, 5000)
}

我认为这是应该发生的。这样来看,service worker (和你的应用)在浏览器中运行。

当你部署一个应用程序更新时,该应用程序更新会访问主机服务器,如果你的应用程序不与主机服务器通信,它将不知道有一个可用的更新。

我一直认为SwUpdate更像是一种"缓存绕过"的更新,当你刷新时,它会选择更新,并独立于你在缓存中的数据加载新版本。

相关内容

  • 没有找到相关文章

最新更新