适用范围:
1. 作用:
- 拦截浏览器的http请求
2. 特点:
- 基于web worker, 并增强功能
- 在web worker的基础上增加了离线缓存的能力
- 由事件驱动的,具有独立的生命周期
- 与页面加载无关
- 可以访问cache和indexDB
- 支持消息推送
- 并且可以让开发者自己控制管理缓存的内容以及版本
- 可以通过 postMessage 接口把数据传递给其他 JS 文件
- 只支持https
- 处于安全考虑
3. 缺点:
- 不能操作DOM
4. 场景:
- 离线资源缓存
- 拦截http请求, 然后可以直接返回本地的缓存, 而不去访问服务器
- 创建有效的离线体验(将一些不常更新的内容缓存在浏览器,提高访问体验)
梗概:
服务器与浏览器之间的中间人, 基于web worker 如果网站中注册了Service Worker, 那么它可以拦截当前网站所有的请求,进行判断(需要编写相应的判断程序). 然后选择是否直接用本地缓存响应这个请求