2017 到 2018,PWA 技术到底经历了什么

高磊 OpenWeb开发者 1周前

在 GMTC 2018 全球大前端会议举办期间,高磊担任主题演讲嘉宾,并担任 PWA 专场出品人。作为有近 10 年 Web 前端技术开发、管理经验的开发者,高磊一直关注着 PWA 技术的发展。

2017年 6月10日,GMTC 2017 开幕,仅来自 Google 的工程师 Michael 分享了题目为《PWA:移动 Web 的现在与未来》的主题演讲,国内尚没有讲师分享PWA 相关技术。

时隔一年,2018 年 6 月21日 GMTC 2018 专门设立 PWA 专场,阿里、美团点评、百度的各位讲师们分别分享了主题为《从 UC 内核角度谈谈 PWA 技术在阿里体系的实践及影响》、《跨容器高性能的离线化方案在美团的实践和探索》、《在 PWA 中使用 App Shell 模型提升性能和用户感知体验》的演讲。

相比于 GMTC 2017 ,从今年的分享内容以及现场听众的反馈可以看出,PWA 在国内已经进入到了技术应用阶段。

PWA国内外发展

从 GMTC 2017 到 GMTC 2018 的一年多时间里,PWA 在国内外都有很大的发展。

国外发展

在今年 5 月份举办的 Google I/O 大会上,Google 基本上每个和 Web 相关的演讲中都提到了 PWA。在 Google 的强力推动下,海外已经有相当多的站点拥有了 PWA 独立形态。其中星巴克就是 Google 强推的一个典型的独立 PWA 站点案例,海外的星巴克官网经过 PWA 改造,日活和月活增张了两倍之多!

Google 在 2017 年的 Chrome Dev Summit 上,就提出了 PWA 作为独立形态外的另外一层意义:Progressive Web Apps are just a higher bar for user experience. 从 Google 统计来看,改造 PWA 之后的网站转化率平均提升 20% 以上!这种转化率的提升说明了 PWA 具有提升 Web 体验的能力。

国内发展

PWA在国内的发展相对缓慢,目前国内还没有类似国外“ PWA 站点”独立形态的成熟站点,但是“技术无国界”,PWA 相关技术已经应用于国内的一些前沿互联网公司。
PWA在性能优化上带来了新的解决方案,美团点评的于秋同学在 GMTC 的演讲中提到,在应用 Service Worker 对支付业务进行迭代后,性能提升了 22%,同时支付转化率提升了 1%~2%。讲师还提到,Service Worker 是一种标准化的技术方案,并不是什么“黑魔法”,不用过于担心跨平台的问题。通过现场问答、线下交流环节的火爆程度,我们可以看出 Service Worker 对性能优化的有效性已经得到了国内前端技术人员的认可。

PWA不单带来了性能上的体验提升,在用户感知层面的东西同样值得大家关注,App Shell 解决了 Web 页面跳转白屏、等待等体验不佳的问题,给用户带来了完整的站点体验。百度讲师潘宇琪带来了 App Shell 相关的分享。在演讲中,宇琪提到使用 APP Shell 的两点好处:

  1. 性能方面:使用 App Shell 模型可以将通用资源和动态内容分离,实现用户访问的快速响应;
  2. 体验方面:App Shell 使得Web App 也可以拥有 Native App 每次点击反馈之后的顺畅交互体验。

    Service Worker、App Shell 在国内都已经有了应用实例,Web 的性能以及浏览、交互体验也已经有了很多样典型站点。那么 PWA 的独立形态为什么迟迟没有出现?具备“将 Web 站点添加到桌面”、“Web Push”消息推送的独立应用何时到来?这个可能是留给各大内容、服务分发平台以及厂商的思考题。作为前端开发者和互联网从业者期待更早的出现答案。

PWA兼容性

Safari 在今年 3 月份发布的 iOS 11.3 版本中支持了 PWA 相关特性。 到目前为止,几乎所有的主流浏览器都支持了 PWA 的相关特性。
这里写图片描述
目前支持 PWA 相关特性的浏览器

总结

目前,我们正在经历着 PWA 给移动 Web 带来的新变化,这种变化将会大大提升用户浏览和交互的体验。有体验做基础,有全球最顶尖的技术开发者做技术迭代,我们有理由相信有着大量流量与用户群体的 Web 生态将会有更大的发展空间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535819.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentrOS7静默安装oracle11g

最近要做一个用ogg实现oracle到kafka的增量数据实时同步,但是Oracle就让我装了好久,这里来记录一下安装oracle过程。 1.建立swap分区 创建充当swap分区的文件,文件大小就是要增加的swap大小,of是文件位置,bs为单位&a…

MIP 网站中熊掌号登录

标题内容类型通用支持布局responsive,fixed-height,fill,container,fixed所需脚本https://c.mipcdn.com/static/v1/mip-mustache/mip-mustache.js https://c.mipcdn.com/static/v1/mip-login-xzh/mip-login-xzh.js 注意&#xff1a;使用该组件必须在引用本组件链接前引用 <…

MIP 支付组件,支付流程:

MIP 支付组件&#xff0c;支付流程&#xff1a; 标题内容类型通用支持布局responsive,fixed-height,fill,container,fixed所需脚本https://c.mipcdn.com/static/v1/mip-simple-pay/mip-simple-pay.js,https://c.mipcdn.com/static/v1/mip-login-xzh/mip-login-xzh.js 注意&…

jar包在Hadoop集群上测试(MapReduce)

本片使用MapReduce——统计输出给定的文本文档每一个单词出现的总次数的案例进行&#xff0c;jar包在集群上测试 1、添加打包插件依赖 <build><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.6.2</versio…

什么是集群(cluster)

1、集群 1.1 什么是集群 简单的说&#xff0c;集群(cluster)就是一组计算机&#xff0c;它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的集群是&#xff0c;用户从来不会意识到集群系统底层的节点&#xff0c;在他/她们看来&am…

JDK源码解析之 Java.lang.Double

Double类是原始类型double的包装类&#xff0c;它包含若干有效处理double值的方法&#xff0c;如将其转换为字符串表示形式&#xff0c;反之亦然。Double类的对象可以包含一个double值。 Double类包装原始类型的值 double中的对象。类型的对象 Double包含一个类型为的字段 doub…

sed教程入门与实例练习(二)

让我们看一下 sed 最有用的命令之一&#xff0c;替换命令。使用该命令&#xff0c;可以将特定字符串或匹配的规则表达式用另一个字符串替换。下面是该命令最基本用法的示例&#xff1a; $ sed -e ’s/foo/bar/’ myfile.txt上面的命令将 myfile.txt 中每行第一次出现的 ‘foo’…

Oracle GoldenGate微服务架构

Oracle GoldenGate支持两种架构&#xff0c;经典架构和微服务架构&#xff08;MA&#xff09;。 可以出于以下目的配置Oracle GoldenGate&#xff1a; 从一个数据库中静态提取数据记录&#xff0c;并将这些记录加载到另一个数据库中。连续提取和复制事务性数据处理语言&#…

Oracle GoldenGate经典架构

可以使用Oracle GoldenGate Classic Architecture从命令行配置和管理数据复制。 图示的说明logicalarch2.png 注意&#xff1a; 这是基本配置。根据业务需求和用例&#xff0c;可以配置此模型的不同变体。 1、Manager Manager是Oracle GoldenGate的控制过程。必须先在Oracl…

awk教程入门与实例练习(一)

Awk 是一种非常好的语言&#xff0c;同时有一个非常奇怪的名称。在本系列&#xff08;共三篇文章&#xff09;的第一篇文章中&#xff0c;Daniel Robbins 将使您迅速掌握 awk 编程技巧。随着本系列的进展&#xff0c;将讨论更高级的主题&#xff0c;最后将演示一个真正的高级 a…

HDFS-简介

HDFS 是 Hadoop Distribute File System 的简称&#xff0c;意为&#xff1a;Hadoop 分布式文件系统&#xff0c;是一种旨在在商品硬件上运行的分布式文件系统。它与现有的分布式文件系统有许多相似之处。但是&#xff0c;与其他分布式文件系统的区别很明显。HDFS具有高度的容错…

JDK源码解析之 java.lang.Thread

位于java.lang包下的Thread类是非常重要的线程类&#xff0c;它实现了Runnable接口&#xff0c;今天我们来学习一下Thread类&#xff0c;在学习Thread类之前&#xff0c;先介绍与线程相关知识&#xff1a;线程的几种状态、上下文切换&#xff0c;然后接着介绍Thread类中的方法的…

HDFS-文件读写过程

一、文件读取 Client向NameNode发起RPC请求&#xff0c;来确定请求文件block所在的位置&#xff1b;NameNode会视情况返回文件的部分或者全部block列表&#xff0c;对于每个block&#xff0c;NameNode 都会返回含有该 block 副本的 DataNode 地址&#xff1b; 这些返回的 DN 地…

Hive-简介入门

Hive简介 Hive最初是Facebook为了满足对海量社交网络数据的管理和机器学习的需求而产生和发展的。互联网现在进入了大数据时代&#xff0c;大数据是现在互联网的趋势&#xff0c;而hadoop就是大数据时代里的核心技术&#xff0c;但是hadoop的mapreduce操作专业性太强&#xff0…

Hive-原理解析

一、Hive 架构 下面是Hive的架构图。 Hive的体系结构可以分为以下几部分 1、用户接口&#xff1a;CLI&#xff08;hive shell&#xff09;&#xff1b;JDBC&#xff08;java访问Hive&#xff09;&#xff1b;WEBUI&#xff08;浏览器访问Hive&#xff09; 2、元数据&#x…

JDK源码解析之 java.lang.ClassLoader

Class代表它的作用对象是类&#xff0c;Loader代表它的功能是加载&#xff0c;那么ClassLoader就是把一个以.class结尾的文件以JVM能识别的存储形式加载到内存中。 一、核心方法 1、loadClass方法 protected Class<?> loadClass(String name, boolean resolve) throws…

JDK源码解析之 Java.lang.Package

如果我们在Class对象上调用getPackage方法&#xff0c;就可以得到描述该类所在包的Package对象(Package类是在java.lang中定义的)。我们也可以用包名通过调用静态方法getPackage或者调用静态方法getPackages(该方法返回由系统中所有已知包构成的数组)来获得Package对象。getNam…

Docker入门-架构

Docker 包括三个基本概念: 镜像&#xff08;Image&#xff09;&#xff1a;Docker 镜像&#xff08;Image&#xff09;&#xff0c;就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。容器&#xff08;Cont…

Docker原理之Namespaces

命名空间&#xff08;namespaces&#xff09;是 Linux 为我们提供的用于分离进程树、网络接口、挂载点以及进程间通信等资源的方法。 一、Namespaces 在日常使用 Linux 或者 macOS 时&#xff0c;我们并没有运行多个完全分离的服务器的需要&#xff0c;但是如果我们在服务器上启…

Docker原理之CGroups

控制组&#xff08;cgroups&#xff09;是 Linux 内核的一个特性&#xff0c;主要用来对共享资源进行隔离、限制、审计 等。只有能控制分配到容器的资源&#xff0c;才能避免当多个容器同时运行时的对系统资源的竞争。控制组技术最早是由 Google 的程序员 2006 年起提出&#x…