什么是PWA
PWA的中文名叫做渐进式网页应用,早在2014年, W3C 公布过 Service Worker 的相关草案,但是其在生产环境被 Chrome 支持是在 2015 年。因此,如果我们把 PWA 的关键技术之一 Service Worker 的出现作为 PWA 的诞生时间,那就应该是 2015 年。
自 2015 年以来,PWA 相关的技术不断升级优化,在用户体验和用户留存两方面都提供了非常好的解决方案。PWA 可以将 Web 和 App 各自的优势融合在一起:渐进式、可响应、可离线、实现类似 App 的交互、即时更新、安全、可以被搜索引擎检索、可推送、可安装、可链接。
需要特别说明的是,PWA 不是特指某一项技术,而是应用了多项技术的 Web App。其核心技术包括 App Manifest、Service Worker、Web Push,等等。
为什么W3C和谷歌在推广这项技术
这就要从前端的现状说起:
Native APP 用起来很流畅,但是也有其天然的基因缺陷:
- 由于其天生封闭的基因,内容无法被索引
- 用户 80% 的时间被 Top3 的超级 App 占据,对于站点来说,应用分发的性价比也越来越不划算
- 要使用它,首先还需要下载几十兆上百着兆的安装包
WEB前端虽然天生具有开放的基因,但是很多时候页面会卡顿,用户体验不佳。虽然社区之前也做过很多努力,例如virtual dom、spa、混合编程、用canvas将整个页面画出来,用户体验也有了很大的改善,但是仍然无法解决几个重要的问题:
- 离线时用户无法使用
- 无法接收消息推送
- 移动端没有一级入口
W3C和谷歌看到了这些问题,于是推出了PWA。
PWA的核心目标
PWA的核心目标就是提升 Web App 的性能,改善 Web App 的用户体验。媲美native的流畅体验,将网络之长与应用之长相结合。
PWA的特点

https://juejin.im/post/5a6c86e451882573505174e7
https://www.youtube.com/watch?v=DtuJ55tmjps