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/