【发布时间】:2020-05-22 21:54:48
【问题描述】:
[上下文] 我完成了Jake Archibald 的精彩 Udacity 课程,在这里可以找到:Offline Web Applications。他的作品提供了一个 Toasts 对话框,提醒用户有可用的更新,并邀请他们进行更新:
虽然此对话框可供用户使用,但手头有一个我似乎无法解决的极端情况:
Service-Worker 可以在客户端更新本地实例之前被更新任意次数,将 Service-Worker 的编号版本推送到“再多一次”。 strong> 例如,当前活跃的 Service Worker 是 #821,而正在等待的 Service Worker 现在是 #824
active and waiting service workers
[问题] 我找不到正确的方法来提醒浏览器下一个要安装的 service worker 需要是 #824,而不是 #822,对话框 + PWA 告诉我当前浏览器是“冗余”的,我可以无需刷新即可访问 service-worker #824,然后单击更新按钮。
一旦设置了 service-worker 并引入了 skipWaiting(),我可以使用任何版本的 Jake 代码重新创建它。
我实际上只是希望能够涵盖在用户决定更新其本地 PWA 之前 service-worker 更新 2 次或更多次的极端情况。
你可以在 github 上找到 Jake 的代码:Jakearchibald/wittr
[ASK]:有没有人找到解决这种极端情况的方法?如果是这样,你如何解决它?我所看到的没有意义,因为服务工作者的生命周期似乎受到 Google 文档的尊重:service-workers/lifecyle
【问题讨论】: