PWA系列 - Service Workers 生命周期

258 阅读1分钟

浏览器一般有三类Worker,

(1) Dedicated Worker, 专用worker, 只能被创建它的JS访问. 创建它的页面关闭, 它的生命周期就结束了.

(2) Shared Worker, 共享worker, 可以被同一域名下的JS访问. 关联的页面都关闭时, 它的生命周期就结束了.

(3) ServiceWorker, 是事件驱动的worker, 生命周期与页面无关. 关联页面未关闭时, 它也可以退出, 没有关联页面时, 它也可以启动.

这三类Worker, 一个非常重要的区别在于不同的生命周期. ServiceWorker与文档无关的生命周期, 是它能提供可靠Web服务的一个重要基础.

本文重点描述ServiceWorker如果管理它与文档无关的生命周期, 以及如何管理各种版本状态.

二 生命周期 官方文档提到, ServiceWorker生命周期的目的是,

实现离线优先. 在不打断现有ServiceWorker的情况下,准备好一个新的ServiceWorker. ServiceWorker注册的scope下的页面, 同一时间只由一个ServiceWorker控制. 确保你的网站只有一个版本在运行. Service Worker 可能有以下几种状态:解析成功(parsed),正在安装(installing),安装成功(installed),正在激活(activating),激活成功(activated),废弃(redundant)。http://click.aliyun.com/m/1000005501/