San*_*rma 5 service-worker workbox workbox-webpack-plugin
我们有一个信号页应用程序,它已安装并处于活动状态。
现在我们的服务器重建了应用程序,服务端文件正在服务器端更新。
我们的客户对这个新的Service Worker文件一无所知,并且仍在使用旧的Service Worker文件。
什么时候有效? 如果我刷新/重新加载该应用程序,则正在安装新的Service Worker。
如果正在服务器上更新服务工作者文件并且未重新加载客户端,我们如何刷新客户端?
可能的解决方案:我认为,我需要在1小时左右之后进行轮询。
“ 服务工作者生命周期 ”是解决此类问题的重要资源。
特别是,有一节涉及更新:
触发更新:
- 导航至范围内页面。
- 在诸如推送和同步之类的功能性事件上,除非在过去的24小时内进行了更新检查。
- 仅在服务工作者URL更改时才调用.register()。
由于您的SPA不使用真实的导航,因此您不会得到第一个项目符号中提到的自动更新检查。
相反,您可以按照该部分后面的示例操作:
如前所述,浏览器会在导航和功能事件后自动检查更新,但您也可以手动触发它们:
Run Code Online (Sandbox Code Playgroud)navigator.serviceWorker.register('/sw.js').then(reg => { // sometime later… reg.update(); });
我可能要做的就是修改SPA的路由器,并reg.update()在路由器要切换到新视图时自动打个电话。这将模拟与非SPA中相同的导航更新行为。
| 归档时间: |
|
| 查看次数: |
1475 次 |
| 最近记录: |