渐进式网络应用程序
渐进式网络应用程序(英語:Progressive Web Apps,简称:PWA)是一种普通网页或网站架构起来的网络应用程序,但它可以以传统应用程序或原生移动应用程序形式展示给用户。这种应用程序形态视图将目前最为现代化的浏览器提供的功能与移动设备的体验优势相结合。
技术背景
自2005年以来,网页开发从静态形式升级为以服务器端技术(如PHP、ASP.NET等)与客户端工具(如Ajax[1]等)以及一些响应式网页设计技术构建的动态形式。[2]那时尽管有一些基于网页技术制作的网络应用(如iPhone于2007年展开的尝试),但都在与原生应用的竞争下失败。相较于需要利用浏览器运行的网络应用,原生应用提供一个更好的用户体验和极快的运行速度。以打包资源和直接利用硬件资源的特性,都令原生应用运行速度更快,并提供更多功能。但到2010年代中期,由于HTML5、CSS 3和JavaScript技术的持续发展,技术更强大、兼容性更高的浏览器的出现,以及类似A10和高通骁龙 821这样强大的处理器的发明,都让高效的混合型应用程序成为强有力的原生应用程序替代品。
混合型应用程序
混合应用程序最大程度地还原移动设备的用户体验,并且需要通过应用商店下载。因此,它们依然消耗存储空间。以标记语言、样式表,以及脚本语言制作的互动网页元素没有使用封闭的系统,例如Flash。一部分运行在移动浏览器的混合型应用没有URL,但支持丰富的用户界面,也允许使用一些操作系统层级的能力。最新发布的CSS 3和JavaScript框架允许开发者使用新的设计范式,例如以网格和Flex为代表的CSS 盒模型,还能使用转译、转换与动画等功能。
特点
在2015年,设计师弗朗西斯·贝里曼和Google Chrome的工程师亚历克斯·罗素提出「渐进式网络应用程序」概念[3],符合条件的应用程序可以在现代浏览器中使用新功能,包括应用工作线程和网络应用清单,而且用户在原生操作系统中,可以从网络应用程序向渐进式网络应用程序升级。根据Google开发者支持页面,[4][5]这些特征是:
- 渐进式:用户无需担心使用哪个浏览器,也可以正常使用PWA。因为这些PWA以渐进增强作为核心信条。
- 响应式:PWA适应包括电脑、手机、平板等其他常用设备在内的多种浏览环境。
- 连接独立性:利用服务工作线程,PWA可以离线或网络情况较差的环境下工作。
- 接近原生应用:为用户提供更接近原生应用的交互体验与导航。
- 保持新版:归功于服务工作线程的更新机制,PWA可以保证用户永远使用最新版本。
- 安全:通过HTTPS,PWA可以阻止通讯窃听,而且能保证内容不被篡改。
- 可被发现:归功于W3C提供的清单文件[6],以及服务工作线程的注册范围机制,PWA可标识为「应用」,且搜索引擎可以正常地索引PWA。
- 可被组装:类似推送通知这样的功能在PWA上都可以轻松组装。
- 可被安装:允许用户直接「保留」PWA到他们的系统桌面,无需到应用商店完成麻烦的步骤。
- 可被链接:只需轻松地分享URL便可链接至PWA中,无需复杂的安装步骤。
参考文献
- ^ Garrett, Jesse James. Ajax: A New Approach to Web Applications. [February 18, 2005]. (原始内容存档于2019-05-07).
- ^ Marcotte, Ethan. Responsive Web Design. [May 25, 2010]. (原始内容存档于2021-04-18).
- ^ Russell, Alex. Progressive Web Apps: Escaping Tabs Without Losing Our Soul. [June 15, 2015]. (原始内容存档于2021-03-24).
- ^ Your First Progressive Web App | Web Fundamentals - Google Developers. [2016-07-17]. (原始内容存档于2016-06-24).
- ^ Google Developers. Progressive Web App. [June 15, 2015]. (原始内容存档于2020-02-24).
- ^ W3C “Web App Manifest”, Working Draft (页面存档备份,存于互联网档案馆), retrieved 12 September 2016