写点什么

在 PWA 中使用 App Shell 模型提升性能和用户感知体验

  • 2019-09-21
  • 本文字数:1001 字

    阅读完需:约 3 分钟

在 PWA 中使用 App Shell 模型提升性能和用户感知体验

GMTC北京2018大会上,潘宇琪讲师做了《在 PWA 中使用 App Shell 模型提升性能和用户感知体验》主题演讲,主要内容如下。


演讲简介


在构建 PWA 应用时,使用 App Shell 模型能够在视觉和首屏加载速度方面带来用户体验的提升。另外,在配合 Service Worker 离线缓存之后,用户在后续访问中将得到快速可靠的浏览体验。在实践过程中,借助流行框架与构建工具提供的众多特性,我们能够在项目中便捷地实现 App Shell 模型及其缓存方案。最后,在常见的 SPA 项目中,我们试图使用 Skeleton 方案进一步提升用户的感知体验。


演讲提纲:


  1. App Shell 模型


在 PWA 中,使用 App Shell 模型将通用的资源与动态内容分离,可以实现对于用户的快速响应。配合 Service Worker 实现 App Shell 的预缓存之后,在弱网甚至离线环境依然能给予用户可靠的浏览体验。另外,借助流行框架与构建工具的先进特性,开发者不必从头实现 App Shell 的全部细节。


(1) 介绍 PRPL 模式和 App Shell 模型思想


(2) 介绍应用该模型后,在用户体验上带来的提升效果


用户浏览站点时,带来近似 Native App 的视觉效果


提升首屏加载速度


(3) 介绍在实际项目开发中,如何借助框架和构建工具实现该模型


(4) 介绍在不同架构(SPA、MPA、SSR)下的 Service Worker 通用预缓存方案


  1. Skeleton 方案


为了进一步提升用户感知体验,在 SPA 中可以使用 Skeleton (骨架屏)减少白屏时间。我们将介绍两种生成方案的实现思路,以及在灵活可用性、展现速度上的优化方式。


(1) 构建阶段的生成方案,包含以下两种:


额外编写组件,使用框架的 SSR (服务端渲染)功能


自动化生成,使用 Headless Chrome 渲染真实页面内容,随后使用占位符进行替换


(2) 解决 SPA 中多页面差异性问题。根据不同页面路由展现不同内容


(3) 优化展现速度。异步加载样式,避免阻塞以进一步减少白屏时间


听众收益


  1. 了解 App Shell 模型的思想,感受应用该模型后对于用户体验的提升效果

  2. 了解使用已有流行框架工具实现 App Shell 的推荐方式

  3. 了解不同项目架构下使用 Service Worker 缓存 App Shell 的通用方案

  4. 了解 SPA 中的 Skeleton 方案,能够使用现有生成工具在项目中应用


讲师介绍


潘宇琪


百度高级研发工程师


潘宇琪,百度高级研发工程师。负责研发 Lavas PWA 解决方案,帮助开发者快速搭建 PWA 应用,解决接入问题。配合团队推进 PWA 在百度内部的推广落地,热爱研究前端新技术与分享。












完整演讲 PPT 下载链接


https://gmtc.infoq.cn/2018/beijing/schedule


2019-09-21 14:50998

评论

发布
暂无评论
发现更多内容

云原生小课堂|高性能、高可用、可扩展的MySQL集群如何组建?

York

云原生 MySQL 高可用 MySQL 数据库

关于数据仓库架构及各组件方案选型

五分钟学大数据

数据仓库 4月月更

面向对象编程,你真正懂吗?

CRMEB

不想被开巨额罚单?银行需筑起数据安全“护城河”

BeeWorks

数据库原理知识及SQL语言知识拓展

王小王-123

MySQL 数据库 MySQL 数据库 4月月更

架构训练营 模块七

Geek_16d2b8

架构训练营 模块七

现代间谍技术的演变:从“王牌特工”到“行走的50w”

脑极体

模块七

Leo

架构实战营

皮皮APP联动社会各界,关注孤独症儿童,照亮人生成长的道路

联营汇聚

王者荣耀商城异地多活架构设计

李大虾

#架构实战营 「架构实战营」

声网的混沌工程实践

声网

测试 混沌工程 质量保障 Dev for Dev

模块七作业

blazar

「架构实战营」

读《A Philosophy of Software Design》——(9)

术子米德

架构师成长笔记

洞见科技深度参编的央行金科联盟「多方安全计算」及「联邦学习」金融应用研究报告正式发布

洞见科技

金融科技 隐私计算 金融创新

Tapdata PDK 生态共建计划启动!Doris、OceanBase、PolarDB、SequoiaDB 等十余家厂商首批加入

tapdata

数据库 实时数据

读《A Philosophy of Software Design》——(8)

术子米德

架构师成长笔记

众安保险 x StarRocks | 全新实时分析能力开启数字化经营新局面

StarRocks

数据库 StarRocks

每个互联网人才都应该知道的SQL注入!

喀拉峻

网络安全 安全 渗透测试 SQL注入

区块链溯源!“有机”食品也要“有迹可循”

旺链科技

区块链 产业区块链 食品追溯

为什么客户体验为王

小炮

客户服务

SpringBoot接入轻量级分布式日志框架(GrayLog)

Java工程师

Java spring 分布式 springboot 组件

王者荣耀商城异地多活架构设计

AragornYang

架构训练营 架构实战营

浅谈加密算法 aes

奋飞安全

android 安全

老项目改造返回值规范化

Rubble

4月日更

音视频开发必懂知识—低延迟相关知识整理

Linux服务器开发

WebRTC ffmpeg 音视频开发 低延迟 流媒体服务器开发

Redis+Caffeine两级缓存,让访问速度纵享丝滑

Java工程师

Java 数据库 redis 架构 高性能

那些年我们一起优化的SQL

Java工程师

Java sql 程序员 索引 MySQL 数据库

[Day8]-[动态规划] 最长公共子序列

方勇(gopher)

LeetCode 动态规划 数据结构与算法、

架构实战营:模块七作业

刘璐

王者荣耀商城异地多活架构设计

五月雨

架构实战营 「架构实战营」

模块7作业

Mr小公熊

在 PWA 中使用 App Shell 模型提升性能和用户感知体验_GMTC_潘宇琪_InfoQ精选文章