浅谈 service worker
service worker 是浏览器在后台独立于网页运行的脚本, 它打开了通向不需要网页或用户交互的功能的大门。

service worker 简介
- 基于 web worker: 一个独立于 JavaScript 主线程的独立线程,在里面执行需要消耗大量资源的操作不会阻塞主线程
- 在 web worker 的基础上增加了离线缓存的能力
- 本质上充当 Web 应用程序(服务器)与浏览器之间的代理服务器,可以拦截全站的请求,并作出相应的请求。
- 创建有效的离线体验(将一些不常更新的内容缓存在浏览器,提高访问体验)
- 由事件驱动的, 具有生命周期
- 可以访问 cache 和 indexDB
- 支持推送
- 可以让开发者自己控制管理缓存的内容以及版本
service worker 可以拦截当前网站所有的请求,进行判断,如果需要向服务器发送请求的就转给服务器,如果可以使用缓存的就使用缓存,大大提高浏览器的体验。
在客户端离线的状态下,可以将静态资源进行缓存,从而减少白屏时间,加快页面响应速度。