如何在后台下载和更新 Service Worker?

How can I download and update a service worker in the background?

我正在尝试了解如何使用 Service Worker 更新应用程序。

我目前的想法是这样的:

  1. 部署新应用 ==> 更改 serviceWorker.js
  2. 使用实时数据库发送变更通知
  3. 应用程序触发更新 serviceWorker.js <==== 这可能吗?
  4. 浏览器下载在后台更改了 service worker
  5. Service worker 安装完成,通知页面重新加载
  6. 应用程序显示[请点击更新]消息。

如何在后台更新 Service Worker(第 3 步)?

ServiceWorkerRegistration object's update() 方法将强制浏览器检查是否有更新的服务工作者脚本可用。例如:

navigator.serviceWorker.register('/sw.js').then(registration => {
  window.addEventListener('your-update-event', () => registration.update());
});