RUM 最佳实践-视觉稳定性的探索与实践

news2024/11/30 20:48:05

写在前面的话

在当今数字时代,网页的视觉稳定性对于提供良好的用户体验至关重要。其中一个衡量视觉稳定性的关键指标就是累积布局偏移(Cumulative Layout Shift,简称 CLS)。CLS 作为 Web Vitals 指标之一,它衡量的是网页内容在加载过程中发生的意外布局偏移的频率和程度,从而确保用户在浏览网页时的舒适度和满意度。在本介绍中,我们将深入探讨 CLS 的概念、评价标准、数据收集与展示,以及如何针对 CLS 进行优化,从而提升用户的网页体验。

介绍

Cumulative Layout Shift (CLS) 是一项稳定的 Core Web Vitals 指标。这是以用户为中心的一项重要指标,用于衡量视觉稳定性,因为它有助于量化用户遇到意外布局偏移的频率。较低的 CLS 有助于确保网页具有令人愉悦的体验。

布局偏移可能会在很多方面干扰用户体验,包括在文本突然移动导致用户在阅读时丢失位置,以及让用户点击错误的链接或按钮。在某些情况下,这可能会造成严重损害。

评价标准

为了提供良好的用户体验,网站的 CLS 得分必须不超过 0.1。为确保大多数用户都能达到此目标,我们建议衡量网页加载的第 75 个百分位(按移动设备和桌面设备细分)。

  • Good,≤0.1
  • poor,>0.25

探索

数据收集

在观测云使用 js 的 performanceObserver 衡量 CLS ,即如下代码:

new PerformanceObserver((entryList) => {
  for (const entry of entryList.getEntries()) {
    console.log('Layout shift:', entry);
  }
}).observe({type: 'layout-shift', buffered: true});

数据展示

时序图展示

时序图作为一种强大的数据可视化工具,它能够形象地展示出不同应用程序在时间维度上的累积布局偏移(CLS)变化趋势。通过这种图形化的表示,我们可以清晰地观察到 CLS 指标随时间推移的波动情况,以及各个应用在不同时间段的稳定性表现。这种动态的视角使我们能够更好地理解应用在用户体验方面的潜在问题,并针对性地制定优化策略。例如,如果时序图显示出某个应用在特定事件发生后 CLS 值显著上升,我们可以迅速定位到问题所在,采取措施如调整页面元素位置、优化图片加载策略或改进内容动态加载机制,以减少意外的布局偏移,从而提升整体的视觉稳定性并改善用户体验。

可以根据不同的页面组来查看不同页面之间的 CLS 的指标情况,来对进行优化:

排行榜展示

通过排行榜能够展示不同屏幕尺寸的 CLS 的情况,根据应用的指标表现来有针对的优化 CLS :

通过排行榜能够展示不同页面组 CLS 的情况,根据页面组的指标表现来有针对的优化 CLS :

影响元素的展示

针对 CLS 的性能情况,可以通过时序图展示哪个元素影响了 CLS 的性能,来对 CLS 进行有针对的优化:

针对 CLS 的性能情况,可以通过排行榜展示哪个元素影响了 CLS 的性能,来对 CLS 进行有针对的优化:

CLS 优化

导致 CLS 不佳的最常见原因包括:

  • 没有尺寸的图片。
  • 广告、嵌入和没有尺寸的 iframe。
  • 动态注入的内容,如广告、嵌入式内容。

根据收集到的 appid、页面组、CLS 影响元素,配合上面的内容,可以有针对性的对这几个维度优化提高 CLS。

示例:

以某应用某路径下较高的 CLS 为例子,通过查看该设备的真实情况,可以做相对应的优化:

通过结合具体的影响元素,也可以更有针对性的对特定屏幕尺寸下的特定元素做优化,来提高视觉稳定性。

比如,向 <img> 标记添加了 width 和 height 属性,以确保在浏览器开始提取图片之前在网页上分配足够的空间。这会最大限度地减少自动重排和重新布局,在增加属性的同时也可以根据屏幕设备比有针对性的自适应。

对于宽高或屏幕设备比等不是非常精细的情况,可以通过设置 min-height ,min-width 来降低布局偏移,在一定程度上能够提高用户体验。

结语

总结来说,CLS 的优化是提升网页用户体验的关键环节,通过有针对性地对影响 CLS 的元素进行优化,我们可以有效地提高网页的视觉稳定性,为用户提供更加愉悦的浏览体验。在未来的网页设计和开发中,我们应该重视 CLS 的优化,确保网页在各种设备和屏幕尺寸下都能表现出良好的视觉稳定性。这将有助于提升网站的用户满意度,增加用户的忠诚度,从而为网站的发展带来更多的机会和挑战。

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

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

相关文章

全球半导体排行:台积电登顶,中芯国际第24位

最新发布的《麦克莱恩报告》4月更新揭示了2023年全球前50大半导体供应商的最终排名情况&#xff0c;其中前25强名单尤为引人注目。台积电&#xff08;TSMC&#xff09;凭借强劲的市场表现和业务增长&#xff0c;成功超越其他竞争对手&#xff0c;跃居全球半导体供应商首位。与此…

资料总结分享:《全外显子测序数据的流程和原理》

1外显子与测序&#xff0c;生信流程 1.1 外显子是什么&#xff1f; 外显子是基因组中能够转录组出成熟RNA的部分。一个基因组中所有外显子的集合&#xff0c;即为外显子组。值得注意的是&#xff0c;通常所说的全外显子组测序&#xff0c;是指针对蛋白编码基因的外显子&#x…

独立开源版:零点城市社交电商v2.1.2.4

源码介绍 独立版&#xff1a;零点城市社交电商v2.1.2.4 新增首页新增多弹窗 注意&#xff1a;如果没有此完整程序勿下载 全开源解密版代码&#xff0c;后端完全开源&#xff0c;前端是VUE前端&#xff0c;可自行二开自己想要的功能。 独立版零点城市社交电商 小程序致力于…

gpt4和chatgpt的区别

模型规模和性能&#xff1a;GPT-4比GPT-3.5更大、更强大。GPT-4拥有更多的参数和更大的训练数据集&#xff0c;因此在各种任务上表现更出色&#xff0c;如语言理解、问题解答和推理能力等。多模态能力&#xff1a;GPT-4支持处理图像等多模态信息&#xff0c;而GPT-3.5主要处理文…

原生实现ajax

1 什么是ajax AJAX Asynchronous JavaScript and XML&#xff08;异步的 JavaScript 和 XML&#xff09;。 AJAX 不是新的编程语言&#xff0c;而是一种使用现有标准的新方法。 AJAX 最大的优点是在不重新加载整个页面的情况下&#xff0c;可以与服务器交换数据并更新部分网…

雨伞-浅色脚本

渲染参考&#xff1a;明亮/干净/高级 静帧参考 解说 镜头时长 效果参考 中景画面展示3把竖着的浅色的伞 1s / 特写展示伞把手 1s 中景展示雨伞全貌 2s 微观镜头 缝线动画 3s 镜头旋转至伞面微观材质镜头&#xff0c;展现其多层结构 10s 微观镜头 水珠滑动在伞…

18.读取指定目录下的txt文档时,调用另外一个python文件

1.题目 遍历4K_phone和4K_VR目录下的所有txt文件&#xff0c;并将它们的内容合并到一个名为4k_decoding.txt的文件中。 但是&#xff0c;假设你有一个名为another_script.py的Python文件&#xff0c;你想在合并txt文件之前执行它生成要处理的txt文档。 最后统计完原始的txt文件…

python使用uiautomator2操作真机(华为Honor 10)

环境&#xff1a; python3.8.10&#xff0c;华为手机Honor 10(6G,64g)&#xff0c;版本android 9。 之前写过一篇文章&#xff1a; python使用uiautomator2操作真机_python uiautomator2 控制真机-CSDN博客 今天再拿另外一部手机测试。 一、将手机设置为开发者模式 1、设…

编程入门(三)【GPT工具的使用】

读者大大们好呀&#xff01;&#xff01;!☀️☀️☀️ &#x1f525; 欢迎来到我的博客 &#x1f440;期待大大的关注哦❗️❗️❗️ &#x1f680;欢迎收看我的主页文章➡️寻至善的主页 文章目录 前言背景了解GPT工具使用技巧GPT工具在学习和工作中的应用 前言 背景了解 2…

【错题集-编程题】Fibonacci数列(Fib 数列)

题目链接&#xff1a;Fibonacci数列_牛客题霸_牛客网 (nowcoder.com) 一、分析题目 在求斐波那契数列的过程中判断⼀下&#xff1a;何时 n 会在两个 fib 数之间。 二、代码 #include <iostream> using namespace std;int main() {int n;cin >> n;int a 0, b 1, …

离世界模型更近一步!Meta开源OpenEQA,评估AI Agent情景理解能力

Yann LeCun 朝着 “世界模型” 又近了一步。 Meta最新的开源工作OpenEQA&#xff1a;从文字模型到世界模型&#xff0c;可以像人一样记忆、推理的新基准&#xff0c;AI理解物理空间又近了一步。 场景1: 假设你正准备离开家&#xff0c;但找不到你的工牌。 现在&#xff0c;…

【数据结构3-栈和队列】

数据结构3-栈和队列 1 栈-特殊的线性表-先进后出1.1 栈的三个案例 2 队列-与栈相反-先进先出2.1 队列的案例 3 用C实现栈的代码&#xff1a;4 用C实现队列的代码 1 栈-特殊的线性表-先进后出 1.1 栈的三个案例 2 队列-与栈相反-先进先出 2.1 队列的案例 3 用C实现栈的代码&…

MCU最小系统晶振模块设计

单片机的心脏&#xff1a;晶振 晶振模块 单片机有两个心脏&#xff0c;一个是8M的心脏&#xff0c;一个是32.768的心脏 8M的精度较低&#xff0c;所以需要外接一个32.768khz 为什么是8MHZ呢&#xff0c;因为内部自带的 频率越高&#xff0c;精度越高&#xff0c;功耗越大&am…

引导过程与故障修复

一、Linux操作系统引导过程 1、引导过程总览 开机自检 检查硬件设备&#xff0c;检测出第一个能够引导系统的设备&#xff0c;比如硬盘或者光驱 MBR 引导 运行MBR扇区里的主引导程序GRUB 启动GRUB菜单 统读取GRUB配置文件(/boot/grub2/grub.cfg)获取内核的设置和位置&#xf…

国产主流数据库存储类型简析

国产数据库在技术架构上主要分为集中式、基于中间件分布式和原生分布式架构&#xff0c;衍生出集中式架构和分布式架构。那么在这些部署架构中&#xff0c;从数据分布的视角来看&#xff0c;在数据库中数据分布的形态是怎样的。本文将简要分析OceanBase、PolarDB、OpenGauss、G…

OpenMesh 网格平均曲率计算

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 根据 Laplace-Beltrami 算子与平均曲率法向的关系: 又根据余切 Laplace-Beltrami 算子的定义: 其中 Ai 为该点邻域面积,取 Voronoi cell 面积如下: 得到

jmeter及PTS压测介绍和使用

一、常用压测工具&#xff1a; loadrunner apache ab&#xff08;单接口压测最方便&#xff09; jmeter 阿里云PTS&#xff08;原生上传jmeter脚本进行压测&#xff09; 二、jmeter可以压测不同的协议和应用 web http https jdbc for database TCP 三、使用场景及优点 1、功能…

基于Python大数据的微博舆情分析,微博评论情感分析可视化系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

5.1 iHRM人力资源 - 员工管理

iHRM人力资源 - 员工管理 - 左右侧主体展示 文章目录 iHRM人力资源 - 员工管理 - 左右侧主体展示一、页面主体结构二、页面左树加载2.1 加载左树数据2.2 记录树的切换节点 三、右侧员工列表3.1 列表结构3.2 员工数据获取3.3 头像和聘用形式3.4 数据分页3.5 员工模糊搜索 一、页…

ssm055基于spring框架的中小企业人力资源管理系统的设计及实现+jsp

中小企业人力资源管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本中小企业人力资源管理系统就是在这样的大环境下诞生&#xff0c;其可…