2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

评论

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

架构师实战营 [模块一]- 微信业务架构和学生管理系统架构设计

ifc177

架构实战营

一文读懂区块链领域最新发展方向 NFT经济将成未来发展方向

CECBC

艺术品

高承实:绘一幅区块链社会画像

CECBC

区块链

【LeetCode】合并两个有序数组Java题解

Albert

算法 LeetCode 4月日更

话说 线程切换&线程数设置

木子的昼夜

聪明人的训练(五)

Changing Lin

4月日更

踩坑 MySQL 索引,看看你真的会用么?

架构精进之路

MySQL 4月日更

极客架构module 1 作业

Geek_649372

架构实战营

话说 Lock condition

木子的昼夜

话说 LockSupport

木子的昼夜

面试题: 合并两个有序链表

木子的昼夜

重磅官宣:Nacos2.0发布,性能提升10倍

xcbeyond

Java 微服务 nacos 4月日更

如何做Nginx安全日志分析可视化

运维研习社

nginx 4月日更 waf

go每日一库 [go-rate] 速率限制器

happlyfox

学习 Go 语言 4月日更

话说 ReadWriteLock

木子的昼夜

话说 ReadWriteLock 第二篇

木子的昼夜

面试题: String "123" 转 int类型

木子的昼夜

C++ sort 排序及自定义排序

玄兴梦影

什么是架构?怎么来理解?

秋天

架构 架构师

业务架构训练营第0期模块一作业

目标一个亿

面试题 : 一个单调递增的数组 随机拿出一个数 你怎么找到这个数

木子的昼夜

区块链的环保实验,助全球提高垃圾回收

CECBC

环保

话说 用户线程&守护线程&线程组&线程优先级

木子的昼夜

话说 ReentrantLock_源码

木子的昼夜

用 JavaScript 实现时间轴与动画 - 前端组件化

三钻

JavaScript 大前端 动画 组件化 时间轴

架构实战营 - 模块 1- 作业

请弄脏我的身体

架构实战营

Java最强规则引擎-ice是如何炼成的?

waitmoon

规则引擎使用 规则引擎 流程引擎

架构实战营第一期作业

王华

架构实战营

话说 面试题连环问

木子的昼夜

话说 线程的概念&生命周期

木子的昼夜

话说 线程创建&启动&停止

木子的昼夜

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