什么是PWA
PWA(Progressive Web Apps):渐进式web app
顾名思义就是
PWA的有点
- 可像app一样,在桌面生成图标,不用打开浏览器,方便访问
- 通过网络缓存提升页面访问速度
- 有app一样的推送功能
- 后台消息传递
(演示视频)[ http://yanshuo.io/assets/player/?deck=5753088f79bc440063aa84f0#/9 ]
Service Workers
说了这么多的有点,那么他是怎么实现的?
Service Worker 是 Chrome 团队提出的Web API,主要用于做持久的离线缓存。
Service Worker这个概念可能比较难懂,它其实是在后台启动的一条服务worker 线程。
它不可以访问页面上的DOM元素,没有页面上的API,但是可以拦截所有页面上的网络请求,包括页面导航,请求资源,Ajax请求。
配合Cache Storage API,可以对页面发送的请求进行管理,这就是为什么Service Worker能让站点离线的原因。
在将来,基于它可以实现消息推送,静默更新以及地理围栏等服务,但是目前它首先要具备的功能是: 拦截和处理网络请求,包括可编程的响应缓存管理。
到了这里不是很像微信小程序吗,但又有些出入