service worker在性能优化中的应用
以下 service worker 简称 sw
背景
性能优化要做到极致的话,sw这一环就不能错过了
适用场景
适用于:
- 2C业务
- 用户会重复访问该平台,并且需要离线体验的能力
- 存在Long Task(密集的cpu计算)会造成页面卡顿,用户操作不流畅
公司对内的平台能用吗?
- 肯定可以,但sw的成本比较高,可以先把一些成本低 效果又好的性能优化先做了。
功能点
主要是下面2点
-
提供离线能力
- sw可以作为 浏览器和服务端之间的中间层,可以代理浏览器端的所有请求,他可以拦截网络请求并根据网络是否可用 来采取适当的动作、更新来自服务器的的资源,或直接提供离线访问的能力(需要至少访问一次,才能有缓存)
-
可以承接一些会造成页面卡顿的Long Task(密集的cpu计算)
- sw本质是由Web Worker实现的,所以可以利用Worker的独立线程,在后台去处理密集的cpu计算,让用户操作页面不会卡顿
- 不熟悉Web Worker的可以看我另一篇web worker实际使用
如何学习(落地)sw?
MDN上有比较好的文档,教程 developer.mozilla.org/zh-CN/docs/…
- 并且还有github的sw的demo github.com/mdn/sw-test (demo教程:developer.mozilla.org/zh-CN/docs/…
码字不易,点赞鼓励!