ionic3 service-worker.js
在2014年,W3C公布了service worker的草案,service worker提供了很多新的能力,使得web app拥有与native app相同的离线体验、消息推送体验。
service worker是一段脚本,与web worker一样,也是在后台运行。作为一个独立的线程,运行环境与普通脚本不同,所以不能直接参与web交互行为。native app可以做到离线使用、消息推送、后台自动更新,service worker的出现是正是为了使得web app也可以具有类似的能力。
ionic3中的service-worker.js 就像普通Web worker的专用版本。它是一个在一个单独的线程中运行的脚本。这意味着程序可以在后台执行某些操作
service worker可以:
后台消息传递
网络代理,转发请求,伪造响应
离线缓存
消息推送
图中可以看到,一个service worker要经历以下过程:
1. 安装
2. 激活,激活成功之后,打开chrome://inspect/#service-workers可以查看到当前运行的service worker
3. 监听fetch和message事件,下面两种事件会进行简要描述
4. 销毁,是否销毁由浏览器决定,如果一个service worker长期不使用或者机器内存有限,则可能会销毁这个worker
ionic3 service-worker.js 详细使用文档:
https://ionicframework.com/docs/developer-resources/service-worker/