PWA 下一代的 Web 模型

PWA 全称 Progress Web Application,也就是渐进式 web 应用,是利用了一系列现代 web 技术,实现 web 体验大幅度提高的的网站 。PWA 的关键技术是 service worker,标志性的体验是可以离线浏览。兼顾 Web 的开放性与原生的便捷性。

实现了 PWA 化的网站,可以有以下功能:

  • 可以被搜索引擎发现,与传统 web 页没区别
  • 可安装。可以像传统app那样在桌面留下快捷方式,一点击就全屏打开
  • 可连接。通过URL即可分享
  • 可离线。可工作在离线或低速的网络环境下。
  • 可推送。可以利用推送api发送通知
  • 渐进增强。不支持pwa的设备会自动降级。

其他可以参考这个网站:https://developer.mozilla.org/zh-CN/Apps/Progressive

  • service worker

    service worker是一个独立于网页的Js线程。在https环境下,高版本的chrome可以注册一个service worker。这个js注册激活之后,就会独立于页面存在,而且页面上所有的http请求,都会先经过它的逻辑判断,才发出去。可以做到判断网络状态,显示不同页面的功能。

  • 渐进增强

    pwa 是一个渐进增强的技术,假如说,pwa有10项要求,全实现了,用户体验会很好,但是你只实现了其中的4项,也会有体验上的提高。要在不断迭代的,不停地完善网站的代码,才渐渐形成更加完善的 PWA 网站

  • 怎么做

    这里有一个 demo

    里面说到了几点技术

  • App Shell Architecture
  • Service Worker + Navigation Preload (Origin Trial)
  • Add to Home Screen, Splash Screen, Browser Mode, Notify user if site is updated etc,
  • Offline Support
  • Online/Offline Events
  • Fetch API
  • Push Notifications
  • Background Sync
  • Web Share API

逐步完善以上技术,关键是Service Worker, 就差不多算是实现了PWA

  • 在哪些地方可以用?

    其实全站都可以用,无论是PC还是M,具体怎么渐渐推进,还需要探索一下。注册了service worker之后,具体要把哪些页面离线化,这个可以自己写逻辑。可以先从m端一些交互简单的页面开始下手。

  • 给我一些例子吧

    请用高版本的安卓手机打开,才能更好地体验pwa的效果。

    这个网站,用苹果手机,也可以添加到主屏

    https://dev.to/

PWA 下一代的 Web 模型

https://pwa.rocks/

https://github.com/google/amp-pwa-demo

以上是 PWA 下一代的 Web 模型 的全部内容, 来源链接: utcz.com/z/264662.html

回到顶部