适用范围:

1. 作用:

  • 拦截浏览器的http请求

2. 特点:

  1. 基于web worker, 并增强功能
    1. 在web worker的基础上增加了离线缓存的能力
  2. 由事件驱动的,具有独立的生命周期
    1. 与页面加载无关
  3. 可以访问cache和indexDB
  4. 支持消息推送
  5. 并且可以让开发者自己控制管理缓存的内容以及版本
  6. 可以通过 postMessage 接口把数据传递给其他 JS 文件
  7. 只支持https
    1. 处于安全考虑

3. 缺点:

  • 不能操作DOM

4. 场景:

  • 离线资源缓存
    • 拦截http请求, 然后可以直接返回本地的缓存, 而不去访问服务器
  • 创建有效的离线体验(将一些不常更新的内容缓存在浏览器,提高访问体验)

梗概:

服务器浏览器之间的中间人, 基于web worker 如果网站中注册了Service Worker, 那么它可以拦截当前网站所有的请求,进行判断(需要编写相应的判断程序). 然后选择是否直接用本地缓存响应这个请求