之前已经介绍过 FCP,可以点击查阅前端页面加载性能指标之 FCP。本文介绍与之相对应的 LCP。通过上文得知,FCP 衡量的是页面首次渲染出有意义的内容的时间点,这通常包括文本、图像、非白色画布或 SVG 的渲染,可以让用户感知到网页正在加载。那么 LCP 又是什么?
Largest Contentful Paint(LCP)衡量的是页面从开始加载到视口内最大的图片或文本块完全渲染的时间。LCP 关注的是用户感知的主要内容加载速度,这通常包括页面上最显眼的元素,如大图像或文本块。
LCP 测量的通常是用户视图范围内的元素,包括
image、 svg、 video,通过 url 设置的 backgroud,以及包含文本节点或内联子元素的块级元素。
因为 LCP 是跟视图大小有关,所以 LCP 元素也不是一成不变。
以下情况的元素则不纳入 LCP 计算范围
opacity: 0
。不管什么元素,通过 css 设置了 margin,padding,border 这些属性,计算尺寸时都不会参与计算。
根据谷歌的定义,一个良好的 LCP 得分是在 2.5 秒以内,这表示要求 75%的用户能够在这个时间内看到页面的主要内容 。如果 LCP 时间超过 4 秒,则被认为是“差”的用户体验。
下面推荐几种方式来测量 LCP 元素
Chrome 的 Performance 面板可以帮助我们分析页面的性能数据,包括 DCL、FP、FCP、LCP 等指标。鼠标点击响应的指标,可以查看关联的元素。下图就可以看到 LCP 元素。Performance 面板可以帮助我们更直观的分析页面性能数据,通常我也是用来分析页面加载性能,包括请求时序队列,JS 执行性能等。
LightHouse 是谷歌浏览器提供的一个性能测试工具,可以诊断手机和桌面设备的网页性能。
接下来我们来测试一下该网站的性能数据,可以得出下面的性能概览。
通过分析结果可以看出首页的性能数据,包括 LCP、FCP、FID、CLS 等指标,下面是一些优化建议。虽然从数据看出,我的网站性能总体还是不错的,不过这仅仅是一个参考,具体的优化还需要根据实际情况来。
PageSpeed Insights 是谷歌提供的在线网站性能分析工具,可以帮助你分析页面性能。它会给你一个关于页面性能的综合报告,包括 LCP。这个工具跟部署的服务器区域有关,所以可能会有不同的结果。类似于 Lighthouse,PageSpeed Insights 也会给出一些优化建议。这里就不做展示了。
PerformanceObserver 可以通过脚本的方式来获取 LCP 元素。可以作为前端性能指标收集的一种方式。
let lastLcp;
const po = new PerformanceObserver((entryList) => {
const entries = entryList.getEntries();
for (const entry of entries) {
if (entry.startTime !== lastLcp) {
console.log("========下面是检测到的LCP元素========");
console.log(entry.element);
lastLcp = entry.startTime;
}
}
});
po.observe({ type: "largest-contentful-paint", buffered: true });
本文为原创,未经授权,禁止任何媒体或个人自媒体转载
原文地址:前端页面加载性能指标之LCP
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。