[笔记] ServiceWork


参考文档

https://juejin.im/post/5b18fd93f265da6e1b5548e0#heading-11

ServiceWork 产生的意义

是一种独立于当前页面在后台(浏览器后台)运行的脚本,能够让 web app 拥有和 native app 一样的离线程序访问能力,让用户能够进行离线体验,消息推送体验。 service worker 是一段脚本,与 web worker 一样,也是在后台运行。

JavaScript是单线程执行的,如果涉及到大量运算的话,很有可能阻碍css tree的渲染,从而阻塞后续代码的执行运算速度,ServiceWork的出现正好解决了这个问题,将一些需要大规模数据运算和获取  资源文件在后台进行处理,然后将结果返回到主线程,由主线程来执行渲染,这样可以避免主线程被巨量的逻辑和运算所阻塞。

大大提升了 JS 线程在处理大规模运算时候的一个能力。

ServiceWork 的功能

  1. 消息推送、传递
  2. 在不影响页面通信以及阻塞线程的情况下,后台同步运算
  3. 网络拦截、代理,转发请求,伪造响应
  4. 离线缓存
  5. 地理围栏定位