PWA 简介

PWA (Progressive Web App),即渐进式的 web 应用,是 Google 提出的让 web 应用可以达到原生应用使用体验的一整套技术方案。在2015年,提出这个概念时,引起人们很大的兴趣,很多网站也都进行了 pwa 的改造,包括 YouTube,twitter等,并且在国内很多公司也进行了 pwa 的尝试,像微博。

PWA 现状

但是目前来看,pwa 的发展相对比较缓慢,因为一个 web 应用想要媲美原生应用的使用体验,不只是要体现在加载速度、离线能力、添加到主屏等方面,还需要分享、支付、访问文件系统、调用硬件等等各种能力。所以目前 pwa 的能力,很难满足一个大型应用的各种需求。这需要依托各种 web 标准的制定以及浏览器的实现。

那么在未来,pwa 是会越来越好,还是逐渐沉寂,我认为这取决于浏览器这个平台是否足够的好,功能是否足够强大,交互是否足够舒服。即使在未来,pwa 还是比不上原生应用的能力,但是 pwa 这一整套技术方案的思想,以及其中的某些技术,用来优化现有页面,也是非常合适的。虽然可能 pwa 在当前产品中不能带来明显的收益,但是作为技术方案,还是非常值得我们去学习的。

PWA 特点

pwa 本质仍然是一个网站,那么开发 pwa 所需的技术仍然是前端开发者熟悉的 HTML、CSS、JavaScript。但是,pwa 比普通网站具有更强大的功能,带来更好的用户体验。目前来看,pwa 相比传统网页,具有如下特点:

  1. 可安装
    传统网站的访问是通过 url 路径来访问的,但是如果想下次访问,那么你需要记录这个 url。在 pwa 中,会有一个 manifest 文件,记录网站的一些信息,包括图标、标题等,通过这个文件,可以让这个网页应用像原生应用一样,安装到主屏幕上。这样就拉近了和用户的距离,让用户更容易二次访问网站。
  2. 可离线
    pwa 中 Service Worker 是一个关键技术,在 Service Worker 中,你可以拦截网络请求,并使用 Cache API 来缓存网络资源,保证在离线状态下,仍然保证网站可访问,而不像传统网页一样,出现 “不能连接到网络” 的页面。
  3. 类似原生应用的交互体验
    在 Service Worker 中借助Push、Notification等 Web API 可以实现推送、通知等功能,并且在未来,随着 Web 规范越来越完善,pwa 的能力会越来越强大。

PWA 中的关键技术

在 pwa 中,最关键的技术是 Service Worker,因为 pwa 中的缓存策略、数据同步、推送通知等等,都是在 Service Worker 中进行处理。另外,为了让 pwa 可安装到主屏幕,Manifest 清单文件是另一重要的技术。最后,就是各种强大的 Web API,让网页应用能实现各种接近原生应用的能力。

总结下来:

  • Service Worker
  • Manifest 清单文件
  • 各种 Web API

最后

如果你相信 Web 的未来是一片光明,那么你应该去学习 pwa 中的关键技术,它可以让你现在的网页应用在体验上提升不止一个档次。

你可能感兴趣的:(PWA,pwa,前端)