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
等等。
PWA 另一项令人兴奋的特性就是可以离线使用,其背后用到的技术是 Service worker。
Service Worker 实际上是一段脚本,在后台运行。作为一个独立的线程,运行环境与普通脚本不同,所以不能直接参与 Web 交互行为。Service Worker 的出现是正是为了使得 Web App 也可以做到像 Native App 那样可以离线使用、消息推送的功能。
我们可以把 Service worker 当做是一种客户端代理。
上面所说 PWA 可实现 Web App 添加至主屏、可实现离线缓存,在断网或弱网状态下依然可以使用一些离线功能,不影响 Web App 体验以及可实现用户在不打开浏览器情况下实现类似于原生 App 离线消息推送功能。
那么对于这些实现,PWA 依赖于什么?
主要依赖于 manifest.json
和 Service wWrker(在项目中可写为一个名为 SW.js
的文件并引入项目)
manifest.json
以一个 JSON 格式的文件被引入项目,它主要用来实现 PWA 页面的添加至主屏、定义 App 启动时的 URL(因为 PWA App 本质上还是一个 Web)等。
参考资料: