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 扩展组件开发手册

本手册将向你展示,完成一个 MIP 扩展组件的开发需要做哪些事情。在此之前,我们假定你: 有一定的 HTML、CSS 和 JavaScript 基础 了解 AMD 的模块管理方式 熟悉版本管理工具 Git 有自己的 GitHub 账号 懂得使用 npm 步骤 通常情况下&am…

Zookeeper分布式安装部署

本篇博客将主要介绍如何进行Zookeeper的分布式安装部署 集群规划 在Carlota1、Carlota2、Carlota3三台机器上进行部署。 安装部署 1、解压安装 上传压缩文件apache-zookeeper-3.6.1-bin.tar.gz到三台机器上解压文件tar -zxvf apache-zookeeper-3.6.1-bin.tar.gz改个名&…

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;使用该组件必须在引用本组件链接前引用 <…

日常问题——hadoop 任务运行到running job就卡住了 INFO mapreduce.Job: Running job: job_1595222530661_0003

执行mapreduce没报错&#xff0c;可是任务运行到running job就卡住在 INFO mapreduce.Job: Running job: job_1595222530661_0003 解决方法 mapred-site.xml下将 <property><name>mapreduce.framework.name</name><value>yarn</value> </pr…

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 注意&…

代码实现——MapReduce统计单词出现次数

需求 对以下txt文档进行单词出现次数统计&#xff08;txt文档在/Users/lizhengi/test/input/目录下&#xff09; hadoop take spring spark hadoop hdfs mapreduce take Tomcat tomcat kafka kafka flume flume hive实现 1、新建Maven工程&#xff0c;pom.xml依赖如下 <…

MIP个性化组件提交规范

MIP个性化组件一般用来实现前后端数据传输或特殊的交互效果&#xff0c;由广大开发者贡献。出于性能、可维护性等方面的考虑&#xff0c;开发者在新增组件或升级组件时&#xff0c;请遵守以下规范。 规范中的必须&#xff08;MUST&#xff09;&#xff0c;禁止&#xff08;MUS…

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

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

代码实现——MapReduce实现Hadoop序列化

简单介绍 1、什么是序列化 序列化&#xff1a;把内存中的对象&#xff0c;转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。反序列化&#xff1a;将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据&#xff0c;转换成内存中的对象。 2、 为…

日常问题——hadoop启动后发现namenode没有启动,但是排除了格式化过度的问题

hadoop启动后发现namenode没有启动&#xff0c;网上说的格式化过度的问题我是没有的&#xff0c;因为我只格式化过一次。之后查看日志 vim /opt/hadoop/logs/namenode对应的log文件 发现 2020-03-03 23:16:21,868 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Na…

Zookeeper3.6.1常用的Shell命令

1、客户端连接 zkCli.sh zkCli.sh -server host:port2、显示节点信息 -s状态 -w监听器 -R递归 ls [-s] [-w] [-R] path3、创建节点 -s加序列号 -e临时节点 create [-s] [-e] path [data]4、获取节点值 -s状态 -w监听器 get [-s] [-w] path5、设置节点值 -s状态 set [-s] […

CentOS7下MySQL5.7的安装

1、下载MySQL 安装包&#xff1a; wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpmyum -y localinstall mysql57-community-release-el7-11.noarch.rpm 2、在线安装MySQL yum -y install mysql-community-server 3、启动mysql 服务 systemct…

CentOS7下Hive的安装配置

0、安装前提 安装配置jdk与hadoop安装配置好mysql 1、下载上传 下载hive&#xff0c;地址:http://mirror.bit.edu.cn/apache/hive/上传到指定位置scp apache-hive-3.1.2-bin.tar.gz rootCarlota1:/usr/local/apps 2、解压安装 tar -zxvf apache-hive-3.1.2-bin.tar.gzmv a…

Hive常用的操作命令

Hive常用的交互命令 hive 进入数据库hive -e 不进入hive的交互窗口执行sql语句hive -f 执行sql脚本hive -help 查看帮助 Hive常用数据库的操作命令 show databases;查看hive中的所有数据库use default;用default数据库create database myhive ;创建数据库create database if…

Hive常见的属性配置

配置文件 默认配置文件&#xff1a;hive-default.xml 用户自定义配置文件&#xff1a;hive-site.xml 用户自定义配置会覆盖默认配置。另外&#xff0c;Hive也会读入Hadoop的配置&#xff0c;因为Hive是作为Hadoop的客户端启动的&#xff0c;Hive的配置会覆盖Hadoop的配置。配…

什么是集群(cluster)

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

Kafka:集群部署

0、环境准备 安装jdk&#xff0c;配置环境提前安装zookeeper 1、解压安装 将tar压缩包上传tar -zxvf kafka_2.12-2.5.0.tgz 2、配置变量环境 vi /etc/profile #kafka export KAFKA_HOME/usr/local/apps/kafka_2.12-2.5.0 export PATH$PATH:$KAFKA_HOME/binsource /etc/pr…

集群(cluster)amp;高可用性(HA)概念

1.1 什么是集群 简单的说&#xff0c;集群&#xff08;cluster&#xff09;就是一组计算机&#xff0c;它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点&#xff08;node&#xff09;。一个理想的集群是&#xff0c;用户从来不会意识到集群系…

Kafka:常用命令

启动Kafka&#xff1a;kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties创建一个叫test的话题&#xff0c;有两个分区&#xff0c;每个分区3个副本&#xff1a;kafka-topics.sh --zookeeper localhost:2181 --create --topic test --replication-factor 3 …