前端与后台代理服务器
主要方法
fetch 事件/方法:service worker向后台发起HTTP请求的方法
fetch(url).then()
message事件/方法:页面和service worker之间进行通信的方法;同一页面两个窗口之间通信(web worker线程)
postMessage发送消息;message接收消息
caches API:处理缓存
生命周期
注册 register
安装 install
激活 activation
更新 Update
service-worker.js文件更新被浏览器发现后,会进入waitting等待状态,当前页面依旧使用旧文件进行work,
直到当前页面关闭,旧版本文件的service worker才会被kill掉,新版本文件的service worker开始接管页面的缓存资源
新的service worker一开始接管就会触发activate事件,从而可以做一些上次老版本缓存的工作
缓存的文件发生更新,可以在fetch 的时候,一边检查更新从而更新缓存,一边检查缓存然后fetch新资源给浏览器,
通过 promise 的 resolve 特性来决定谁快
应用场景
(https环境)
后台消息传递
网络代理,转发请求,伪造响应
离线缓存
消息推送
1 | //在项目入口/配置js文件 进行注册 |
相关文档
fetch 通信
web worker 语法
Service Worker API
遗留问题:fetch通信headers添加token字段,不生效