写点什么

在 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:50835

评论

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

Git 实战(三) | Github 必会高频基础命令与 IDE 的 Git 集成

霍格沃兹测试开发学社

MockServer 服务框架设计

霍格沃兹测试开发学社

Python 自动化测试(五): Pytest 结合 Allure 生成测试报告

霍格沃兹测试开发学社

Docker 镜像构建可以分享的快乐

霍格沃兹测试开发学社

Tapdata 获阿里云首批产品生态集成认证,携手阿里云共建新合作

tapdata

阿里云 Tapdata

Tapdata 杨哲轩:如何在零售行业实施主数据治理?

tapdata

Tapdata

Jenkins 踩坑(三)| Email 配置与任务邮件发送

霍格沃兹测试开发学社

Pb协议的接口测试

霍格沃兹测试开发学社

开源治理:安全的关键

SEAL安全

开源 开源文化 开源安全 开源安全与治理

成长计划校园极客秀 | 玩转OpenHarmony开发智能煤气检测系统

OpenHarmony开发者

OpenHarmony

在window下使用 VScode 搭建 ARM 开发环境

矜辰所致

开发工具 开发环境 arm 8月月更

App自动化之dom结构和元素定位方式(包含滑动列表定位)

霍格沃兹测试开发学社

开源新工具 Azure Developer CLI

Azure云科技

azure cli 应用程序 #开源

深度解读|关于SBOM最基础元素,你需要知道的(Part III)

安势信息

漏洞 漏洞扫描 代码安全 SBOM SBOM最基础元素

PageObject(PO)设计模式在 UI 自动化中的实践总结(以 QQ 邮箱登陆为例)

霍格沃兹测试开发学社

大数据培训机构学习后就业前景如何

小谷哥

BAT大厂都在用的Docker。学会这三招,面试、工作轻松hold住

霍格沃兹测试开发学社

Python 自动化测试(三): pytest 参数化测试用例构建

霍格沃兹测试开发学社

如何应对突发的流量激增和服务器过载问题

NGINX开源社区

nginx 流量控制 高速缓存

BAT 大厂最流行的性能压测、监控、剖析技术体系解析

霍格沃兹测试开发学社

编程小白也能快速掌握的ArkUI JS组件开发

HarmonyOS开发者

HarmonyOS

Junit5 架构、新特性及基本使用(常用注解与套件执行)

霍格沃兹测试开发学社

易观千帆 | 2022年7月苏州市手机银行应用活跃人数榜单

易观分析

金融 手机银行 榜单 苏州

LED显示屏行业未来是如果发展的?市场怎么样?

Dylan

LED显示屏 led显示屏厂家

Jenkins 踩坑 | job 创建、参数化、定时构建及时区偏差问题解决

霍格沃兹测试开发学社

Jenkins 踩坑(四)|基于接口自动化测试完成 Jenkins+GitHub+Allure 的结合

霍格沃兹测试开发学社

5 个 JavaScript 写法小技巧分享

掘金安东尼

JavaScript 前端 8月月更

30 分钟轻松搞定正则表达式基础

霍格沃兹测试开发学社

云原生(三十一) | Kubernetes篇之平台基本预装资源

Lansonli

云原生 k8s 8月月更

Git实战(五)| 让工作更高效,搞定Git的分支管理

霍格沃兹测试开发学社

Git实战(四)| Git分支管理实操,搞定在线合并和本地合并

霍格沃兹测试开发学社

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