前端页面加载性能指标之LCP

简介: 本文介绍了 Largest Contentful Paint (LCP),一种衡量网页加载性能的指标,专注于视口内最大图片或文本块的完全渲染时间,旨在提升用户对主要内容加载速度的感知。文章还探讨了LCP的测量方法和优化策略,如图像优化、懒加载等,以帮助改善网页性能。

之前已经介绍过 FCP,可以点击查阅前端页面加载性能指标之 FCP。本文介绍与之相对应的 LCP。通过上文得知,FCP 衡量的是页面首次渲染出有意义的内容的时间点,这通常包括文本、图像、非白色画布或 SVG 的渲染,可以让用户感知到网页正在加载。那么 LCP 又是什么?


什么是 LCP

Largest Contentful Paint(LCP)衡量的是页面从开始加载到视口内最大的图片或文本块完全渲染的时间。LCP 关注的是用户感知的主要内容加载速度,这通常包括页面上最显眼的元素,如大图像或文本块。


LCP 测量哪些元素

LCP 测量的通常是用户视图范围内的元素,包括   image、 svg、 video,通过 url 设置的 backgroud,以及包含文本节点或内联子元素的块级元素。

因为 LCP 是跟视图大小有关,所以 LCP 元素也不是一成不变。


以下情况的元素则不纳入 LCP 计算范围

  • 不可见元素:如果元素的透明度设置为 opacity: 0
  • 全视口元素:覆盖整个视口的元素可能被视为背景而非主要内容。
  • 低熵图片:低熵图片通常指的是图像中灰度分布较为集中,灰度值较为单一或变化较小的图片。

不管什么元素,通过 css 设置了 margin,padding,border 这些属性,计算尺寸时都不会参与计算


LCP 多少及格

根据谷歌的定义,一个良好的 LCP 得分是在 2.5 秒以内,这表示要求 75%的用户能够在这个时间内看到页面的主要内容 。如果 LCP 时间超过 4 秒,则被认为是“差”的用户体验。


如何测量 LCP

下面推荐几种方式来测量 LCP 元素

  • Chrome 的 Performance(推荐)
  • Chrome 的 LightHouse
  • PageSpeed Insights
  • 使用 PerformanceObserver API

Performance(推荐)

Chrome 的 Performance 面板可以帮助我们分析页面的性能数据,包括 DCL、FP、FCP、LCP 等指标。鼠标点击响应的指标,可以查看关联的元素。下图就可以看到 LCP 元素。Performance 面板可以帮助我们更直观的分析页面性能数据,通常我也是用来分析页面加载性能,包括请求时序队列,JS 执行性能等。



Lighthouse

LightHouse 是谷歌浏览器提供的一个性能测试工具,可以诊断手机和桌面设备的网页性能。

接下来我们来测试一下该网站的性能数据,可以得出下面的性能概览。



通过分析结果可以看出首页的性能数据,包括 LCP、FCP、FID、CLS 等指标,下面是一些优化建议。虽然从数据看出,我的网站性能总体还是不错的,不过这仅仅是一个参考,具体的优化还需要根据实际情况来。




PageSpeed Insights

PageSpeed Insights  是谷歌提供的在线网站性能分析工具,可以帮助你分析页面性能。它会给你一个关于页面性能的综合报告,包括 LCP。这个工具跟部署的服务器区域有关,所以可能会有不同的结果。类似于 Lighthouse,PageSpeed Insights 也会给出一些优化建议。这里就不做展示了。


使用 PerformanceObserver api

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

  • 图像优化:压缩图片、选择合适的图像格式,如 WebP,以减少文件大小。
  • 懒加载:延迟加载页面上非关键内容,直到用户滚动到它们。
  • 提前加载:对影响LCP的关键请求可以提前发起请求。
  • 使用 cdn:通过内容分发网络加速静态资源的加载。
  • 减少服务器响应时间:优化服务器性能,利用接口,资源缓存减少数据传输。
  • 移除或延迟非必要的第三方脚本:减少对主要内容加载的阻塞 。


本文为原创,未经授权,禁止任何媒体或个人自媒体转载


原文地址:[前端页面加载性能指标之LCP](https://www.kelen.cc/posts/lcp)


目录
相关文章
|
1天前
|
人工智能 自动驾驶 大数据
预告 | 阿里云邀您参加2024中国生成式AI大会上海站,马上报名
大会以“智能跃进 创造无限”为主题,设置主会场峰会、分会场研讨会及展览区,聚焦大模型、AI Infra等热点议题。阿里云智算集群产品解决方案负责人丛培岩将出席并发表《高性能智算集群设计思考与实践》主题演讲。观众报名现已开放。
|
18天前
|
存储 人工智能 弹性计算
阿里云弹性计算_加速计算专场精华概览 | 2024云栖大会回顾
2024年9月19-21日,2024云栖大会在杭州云栖小镇举行,阿里云智能集团资深技术专家、异构计算产品技术负责人王超等多位产品、技术专家,共同带来了题为《AI Infra的前沿技术与应用实践》的专场session。本次专场重点介绍了阿里云AI Infra 产品架构与技术能力,及用户如何使用阿里云灵骏产品进行AI大模型开发、训练和应用。围绕当下大模型训练和推理的技术难点,专家们分享了如何在阿里云上实现稳定、高效、经济的大模型训练,并通过多个客户案例展示了云上大模型训练的显著优势。
|
21天前
|
存储 人工智能 调度
阿里云吴结生:高性能计算持续创新,响应数据+AI时代的多元化负载需求
在数字化转型的大潮中,每家公司都在积极探索如何利用数据驱动业务增长,而AI技术的快速发展更是加速了这一进程。
|
13天前
|
并行计算 前端开发 物联网
全网首发!真·从0到1!万字长文带你入门Qwen2.5-Coder——介绍、体验、本地部署及简单微调
2024年11月12日,阿里云通义大模型团队正式开源通义千问代码模型全系列,包括6款Qwen2.5-Coder模型,每个规模包含Base和Instruct两个版本。其中32B尺寸的旗舰代码模型在多项基准评测中取得开源最佳成绩,成为全球最强开源代码模型,多项关键能力超越GPT-4o。Qwen2.5-Coder具备强大、多样和实用等优点,通过持续训练,结合源代码、文本代码混合数据及合成数据,显著提升了代码生成、推理和修复等核心任务的性能。此外,该模型还支持多种编程语言,并在人类偏好对齐方面表现出色。本文为周周的奇妙编程原创,阿里云社区首发,未经同意不得转载。
|
6天前
|
人工智能 自然语言处理 前端开发
100个降噪蓝牙耳机免费领,用通义灵码从 0 开始打造一个完整APP
打开手机,录制下你完成的代码效果,发布到你的社交媒体,前 100 个@玺哥超Carry、@通义灵码的粉丝,可以免费获得一个降噪蓝牙耳机。
3538 13
|
25天前
|
缓存 监控 Linux
Python 实时获取Linux服务器信息
Python 实时获取Linux服务器信息
|
11天前
|
人工智能 自然语言处理 前端开发
什么?!通义千问也可以在线开发应用了?!
阿里巴巴推出的通义千问,是一个超大规模语言模型,旨在高效处理信息和生成创意内容。它不仅能在创意文案、办公助理、学习助手等领域提供丰富交互体验,还支持定制化解决方案。近日,通义千问推出代码模式,基于Qwen2.5-Coder模型,用户即使不懂编程也能用自然语言生成应用,如个人简历、2048小游戏等。该模式通过预置模板和灵活的自定义选项,极大简化了应用开发过程,助力用户快速实现创意。
|
13天前
|
人工智能 自然语言处理 前端开发
用通义灵码,从 0 开始打造一个完整APP,无需编程经验就可以完成
通义灵码携手科技博主@玺哥超carry 打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用 AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。本教程完全免费,而且为大家准备了 100 个降噪蓝牙耳机,送给前 100 个完成的粉丝。获奖的方式非常简单,只要你跟着教程完成第一课的内容就能获得。
5705 10
|
7天前
|
人工智能 C++ iOS开发
ollama + qwen2.5-coder + VS Code + Continue 实现本地AI 辅助写代码
本文介绍在Apple M4 MacOS环境下搭建Ollama和qwen2.5-coder模型的过程。首先通过官网或Brew安装Ollama,然后下载qwen2.5-coder模型,可通过终端命令`ollama run qwen2.5-coder`启动模型进行测试。最后,在VS Code中安装Continue插件,并配置qwen2.5-coder模型用于代码开发辅助。
578 4
|
10天前
|
云安全 人工智能 自然语言处理