为什么是渐进式

我们强调渐进式的改善站点体验主要有下面两个原因:

  • 降低站点改造的代价,逐步支持各项新技术,不要一蹴而就
  • 新技术标准的支持度还不完全,新技术的标准还未完全确定

PWA 改造的成本考虑

PWA 涉及到从安全、性能和体验等方面的优化,想要一次性支持所有特性,代价很高,老板也不一定愿意投入大量人力来支持这项大工程。

所以,从改造的成本考虑,我们也建议采取渐进式的方式,可以考虑按照下面的步骤来改造:

  • 第一步,应该是安全,将全站 HTTPS 化,因为这是 PWA 的基础,没有 HTTPS,就没有 Service Worker
  • 第二步,应该是 Service Worker 来提升基础性能,离线提供静态文件,把用户首屏体验提升上来
  • 第三步,App Manifest,这一步可以和第二步同时进行
  • 后续,再考虑其他的特性,离线消息推送等

标准的支持度

PWA 采用的最新技术,当前浏览器还没有达到完全支持的程度,W3C 关于这些技术的标准也还在处于草稿状态,没有定稿。

根据 Can I use 的统计(包括 PC 和 Mobile)

  • App Manifest 的支持度达到 57.43%
  • Service Worker 的支持度达到 72.82%
  • Notifications API 的支持度达到 43.3%
  • Push API 的支持度达到 72.39%
  • Background Sync 暂未统计到,Chrome 49 以上均支持

随着 W3C 的标准的进一步完善,国内外各大浏览器都会逐步支持,拥抱标准。

我们可以通过下面两个链接关注 Service Worker 的支持度,https://lavas.baidu.com/ready