译者:郑 farmer
原文链接
目的
本文中介绍利用生命周期可以实现的功能大概有如下几点:
-
实现缓存优先(offline-first)
-
在不打断现有 SW 的情况下,准备好一个新的 SW
-
让注册 SW 的页面同一时间只归属同一个 SW 控制
-
确保你的网站只有一个版本在运行
最后一点尤其重要,一般情况下(没有 SW 的情况),用户浏览你的网站时可能先打开一个 tab,过了一会儿又打开了一个 tab,结果就是在同一时间,你的页面运行了两个版本,大部分时候,这样是没问题的,但是如果你使用了缓存,那么两个 tab 就要面临如何管理缓存的问题,如果处理不好,它可能会造成异常,严重的造成数据丢失。
第一个 Service Worker
install
事件是 SW 触发的第一个事件,并且仅触发一次。installEvent.waitUntil()
接收一个 Promise 参数,用它来表示 SW 安装的成功与否。- SW 在安装成功并激活之前,不会响应
fetch
或push
等事件。 - 默认情况下,页面的请求(fetch)不会通过 SW,除非它本身是通过 SW 获取的,也就是说,在安装 SW 之后,需要刷新页面才能有效果。
clients.claim()
可以改变这种默认行为。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!