前端性能指标

常见性能指标:

  1. FP(First Paint–首次像素绘制):是时间线上的第一个“时间点”,它代表浏览器第一次向屏幕传输像素的时间,也就是页面在屏幕上首次发生视觉变化的时间,只要在视觉上开始发生变化,无论是什么内容触发的视觉变化,在这一刻,这个时间点,叫做FP;
  2. FCP(First Contentful Paint–首次内容绘制):这个指标用于记录浏览器首次绘制来自DOM的内容,例如:文本,图片,SVG,非空白canvas元素等,这个时间点叫FCP。FP 指的是绘制像素,比如说页面的背景色是灰色的,那么在显示灰色背景时就记录下了 FP 指标,但是此时 DOM 内容还没开始绘制,可能需要文件下载、解析等过程,只有当 DOM 内容发生变化才会触发,比如说渲染出了一段文字,此时就会记录下 FCP 指标;
  3. LCP(Largest Contentful Paint–最大内容绘制):用于记录视窗内最大的元素绘制的时间,该时间会随着页面渲染变化而变化,因为页面中的最大元素在渲染过程中可能会发生改变,另外该指标会在用户第一次交互后停止记录,根据W3C Web性能工作组的讨论和Google的研究,发现测量页面主要内容的可见时间有一种更精准且简单的方法是查看什么时候渲染最大元素;在这里插入图片描述
  4. FMP(First Meaningful Paint–首次有效绘制):页面的“主要内容”开始出现在屏幕上的时间点,FMP本质上是通过一个算法来猜测某个时间点可能是FMP,所以有时候不准,FP与FCP可以让我们知道,我们的产品何时开始渲染;而FMP与LCP可以让我们了解我们的产品何时“有用”,站在用户的角度,FMP与LCP可以表示我们的产品需要多久才能体现出价值;
  5. Speed Index**:显示页面可见部分的平均时间,数值越小说明速度越快,它主要用于测量页面内容在视觉上填充的速度;
  6. TTI(Time to Interactive–可交互时间):表示网页第一次 完全达到可交互状态 的时间点,可交互状态指的是页面上的UI组件是可以交互的(可以响应按钮的点击或在文本框输入文字等),不仅如此,此时主线程已经达到“流畅”的程度,主线程的任务均不超过50毫秒。TTI很重要,因为TTI可以让我们了解我们的产品需要多久可以真正达到“可用”的状态;
  7. FCI(First CPU Idle–首次CPU空闲):是对TTI的一种补充,TTI可以告诉我们页面什么时候完全达到可用,但是我们不知道浏览器第一次可以响应用户输入是什么时候,我们不知道网页的“最小可交互时间”是多少,最小可交互时间是说网页的首屏已经达到了可交互的状态了,但整个页面可能还没达到,第一次CPU空闲,主线程空闲就代表可以接收用户的响应了;
  8. FID(First Input Delay–首次输入延迟):指的是用户首次与产品进行交互时,我们产品可以在多长时间给出反馈,TTI可以告诉我们网页什么时候可以开始流畅地响应用户的交互,但是如果用户在TTI的时间内,没有与网页产生交互,那么TTI其实是影响不到用户的,TTI是不需要用户参与的指标,但如果我们真的想知道TTI对用户的影响,我们需要FID,不同的用户可能会在TTI之前开始与网页产生交互,也可能在TTI之后才与网页产生交互,所以对于不同的用户它的FID是不同的。如果在TTI之前用户就已经与网页产生了交互,那么它的FID时间就比较长,而如果在TTI之后才第一次与网页产生交互,那么他的FID时间就短。
  9. CLS(Cumulative Layout Shift–累计位移偏移):记录了页面上非预期的位移波动,页面渲染过程中突然插入一张巨大的图片或者说点击了某个按钮突然动态插入了一块内容等等相当影响用户体验的网站。这个指标就是为这种情况而生的,计算方式为:位移影响的面积 * 位移距离,下图文本移动了 25% 的屏幕高度距离(位移距离),位移前后影响了 75% 的屏幕高度面积(位移影响的面积),那么 CLS 为 0.25 * 0.75 = 0.1875;
    在这里插入图片描述
  10. TTFB(Time to First Byte–首字节时间):网络请求被发起到从服务器接收到第一个字节这段时间,客户端开始收到服务器响应数据的时间=后台处理时间+重定向时间,是反映服务端响应速度的重要指标;
  11. TBT(Total Blocking Time–阻塞总时间):记录在 FCP 到 TTI 之间所有长任务的阻塞时间总和,假如说在 FCP 到 TTI 之间页面总共执行了以下长任务(执行时间大于 50ms)及短任务(执行时间低于 50ms),
    在这里插入图片描述
    那么每个长任务的阻塞时间就等于它所执行的总时间减去 50ms,TBT 总共等于200+40+105=345ms。
    在这里插入图片描述
  12. 首屏时间:在不滚动屏幕下的前提下,用户看到完整第一屏内容花费的时间,首屏内容完全加载完成,才叫首屏,而不是出现内容,或者部分元素没有展示,首屏时间的获取方式:
    (1)首屏模块标签标记法:通过在 html 文档中,在首屏线的位置,添加脚本的方式,去获取这个位置的时间:window.firstScreen = Date.now(),首屏时间 = firstScreen - performance.timing.navigationStart,首屏线其实我们只能大约估摸一个位置,并不能十分精确地适配任何屏幕的手机,因为手机屏大小不一,我们取的位置可能在首屏线之上,可能在首屏线之下,只能得到一个大约的值,但是并不需要太精确的数字,大小屏首屏内容反正不会差太多。适用场景:1. 首屏内不需要拉取数据,否则可能拿到首屏线获取时间的时候,首屏还是空白;2. 不需要考虑图片加载,只考虑首屏主要模块。
    (2)首屏最慢图片加载时间统计:一般来说,首屏内容加载最慢的就是图片资源,所以,可以把首屏内加载最慢的图片的时间 ,当做首屏时间,首先,我们就要拿到首屏内所有的图片,然后遍历他们,逐个监听图片标签的 onload 事件,并收集到他们的加载时间,最后比较得到加载时间的最大值:首屏时间 = 加载最慢的首屏图片时间- performance.timing.navigationStart;
    (3)自定义模块内容计算法:根据业务场景制定合适的计算方法。

三个核心指标:

Google 在2020年5月提出了网站用户体验的三大核心指标,分别为:
LCP
FID
CLS

LCP 代表了页面的速度指标,虽然还存在其他的一些体现速度的指标,但是 LCP 能体现的东西更多一些。一是指标实时更新,数据更精确,二是代表着页面最大元素的渲染时间,通常来说页面中最大元素的快速载入能让用户感觉性能还挺好,官方推荐的时间区间,在 2.5 秒内表示体验优秀;
在这里插入图片描述
FID 代表了页面的交互体验指标,毕竟没有一个用户希望触发交互以后页面的反馈很迟缓,交互响应的快会让用户觉得网页挺流畅,Google 推荐响应用户交互在 100ms 以内;
在这里插入图片描述

CLS 代表了页面的稳定指标,尤其在手机上这个指标更为重要。因为手机屏幕挺小,CLS 值一大的话会让用户觉得页面体验做的很差,CLS 推荐值为低于 0.1。
在这里插入图片描述
LCP 文档:https://web.dev/lcp/
LCP 优化文档:https://web.dev/optimize-lcp/
FID 文档:https://web.dev/fid/
FID 优化文档:https://web.dev/optimize-fid/
CLS 文档:https://web.dev/cls/
CLS 优化文档:https://web.dev/optimize-cls/

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端性能测试是指检查网站或应用程序在客户端浏览器中的性能。对于前端性能测试,以下是一些常见的关注点: 1. 页面加载时间:页面加载时间是网站或应用程序的重要性能指标。在前端性能测试中,需要检查页面的加载时间,以确保页面可以快速加载。 2. 资源加载时间:在前端性能测试中,需要关注页面中各种资源(例如,CSS、JavaScript、图片等)的加载时间。这些资源的加载时间会影响页面的总加载时间。 3. 页面渲染时间:前端性能测试还需要关注页面渲染时间。页面渲染时间指的是浏览器将 HTML 和 CSS 转换为可见页面的时间。 4. 响应时间:响应时间是指从用户发出请求到服务器响应请求的时间。在前端性能测试中,需要检查网站或应用程序的响应时间,以确保用户可以快速获得响应。 5. 用户体验:前端性能测试还需要关注用户体验。用户体验包括网站或应用程序的易用性、可靠性、可访问性等方面。 6. 跨浏览器兼容性:在前端性能测试中,需要确保网站或应用程序在不同浏览器中都可以正常运行,并且用户体验相同。 7. 移动设备适配性:在前端性能测试中,需要关注网站或应用程序在移动设备上的性能。需要确保页面可以快速加载,并且用户体验良好。 8. 安全性:在前端性能测试中,需要确保网站或应用程序的安全性。需要检查是否存在安全漏洞,以及是否有足够的安全措施保护用户数据。 总之,前端性能测试需要关注多个方面,以确保网站或应用程序的性能和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值