在介绍service之前,先引入一下PWA(由Google的Chrome团队创造),技术支持主要是ServiceWorker和Web App Mainfest
PWA是一种webapp模型,是一种渐进的web app,利用一些web特性,配合ui使用,增强web app的用户体验。(手机使用Safari 进入 m.weibo.cn/beta 将它保存在手机桌面上,点击桌面上相应快捷方式时,不会再显示url)。
那么刚才已经说过了,PWA有一个特性 -- 浏览器离线和弱网络环境可以急速访问。 这就使用了即将介绍的Service Worker:
功能:
它是充当在web应用程序与浏览器之间的代理服务器。离线缓存
特性:
后台消息传递
网络代理、转发请求、伪造响应
离线缓存
消息推送
现阶段来看,serviceWorker的功能主要集中在网络资源代理和离线缓存上。可以理解为他是一个在浏览器离线时,仍能运行的web wokrer。因此,window以及dom都是不能访问的。可以利用self访问全局上下文。
service worker 完全异步、同步API (XHR、LocalStroage)不能在其中使用。
正常情况下他是需要https环境才能跑起来的。但是本地服务器(127.0.0.1 / localhost)是可以使用的。
打开终端
重启apache:sudo /usr/sbin/apachectl restart
关闭apache:sudo /usr/sbin/apachectl stop
开启apache:sudo /usr/sbin/apachectl start
他的生命周期如下:共包含四个状态:安装、激活、等待、销毁(解雇)