Lighthouse(灯塔)—— Chrome 浏览器性能测试工具

1.认识 Lighthouse

  Lighthouse 是 Google 开发的一款开源性能测试工具,用于分析网页或 Web 应用的性能、可访问性、最佳实践、安全性以及 SEO 等关键指标。开发人员可以通过 Lighthouse 快速了解网页的性能瓶颈,并基于优化建议进行改进。

核心功能:

  • 对页面性能进行全面分析
  • 提供优化建议和评分
  • 支持多种测试维度,如性能、可访问性、SEO、PWA 等
  • 自动化生成测试报告


使用的谷歌浏览器版本:

2.Lighthouse 的三种模式

  Lighthouse 提供三种测试模式,每个模式适用于不同场景。以下是每种模式的说明:

模式名称说明局限性
导航模式(默认)获取页面性能分数与指标。
评估渐进式 Web 应用功能。
分析页面加载后的可访问性。
无法分析表单提交或单页应用的转换。
时间跨度模式测量特定时间范围内的性能(如布局偏移、JS 执行时间)。
适合评估长时间使用的页面或 SPA。
不提供总分。
无法分析瞬时性能指标,如最大内容绘制 (LCP)。
快照模式分析页面当前状态,适用于查找深层次表单或隐藏菜单的可访问性问题。不提供总分。
无法分析 DOM 之外的问题。

测试设备选择

  Lighthouse 支持两种设备类型:

  1. 移动设备模拟(默认)
  2. 桌面设备模拟

3.主要监测指标

  Lighthouse 监测多个维度的性能指标,以下是最重要的性能指标说明:

性能(Performance)

指标名称说明
首次内容绘制 (FCP)页面首次绘制 DOM 内容的时间,表示用户第一次看到页面内容的时间点。
最大内容绘制 (LCP)可视区域中最大内容元素呈现的时间,用于衡量主要内容的加载速度。
可交互时间 (TTI)页面完全可交互的时间点,表示浏览器可以快速响应用户操作的时刻。
总阻塞时间 (TBT)页面从首次内容绘制到完全可交互期间的总阻塞时间。
累积布局偏移 (CLS)页面布局的稳定性指标,衡量意外布局偏移对用户体验的影响。
速度指标 (SI)衡量页面内容在首屏可见的速度,值越小越佳。

可访问性(Accessibility)

检测网页的无障碍设计,包括对屏幕阅读器支持、颜色对比度、表单标签等。

最佳实践(Best Practices)

检测网页安全性和开发实践,例如是否启用 HTTPS,是否存在安全漏洞等。

SEO(Search Engine Optimisation)

评估网页的搜索引擎友好性,比如标题、元描述是否优化,页面是否允许爬取等。

渐进式 Web 应用(PWA)

验证网页是否符合 PWA 标准,如离线支持、安装性等。


4.如何使用 Lighthouse

  Lighthouse 可以通过多种方式运行:

  1. Chrome DevTools
    打开 Chrome 浏览器,右键点击页面 -> 检查 -> 切换到 Lighthouse 面板,选择测试选项,点击 分析页面加载

  1. CLI 命令行工具
  2. Chrome 插件
    在 Chrome 网上应用商店搜索 Lighthouse 插件,安装后直接在浏览器中生成报告。

  1. Node.js API
    使用 Node.js 脚本运行 Lighthouse 测试,适合高级开发者(官方介绍的,没用过)。

5.Lighthouse 报告解读

Lighthouse 报告为每个维度生成 0–100 的评分,并用颜色标识:

  • 绿色(90–100):表现优秀
  • 橙色(50–89):表现中等
  • 红色(0–49):表现较差

下面是关键性能指标的理想范围:

指标名称绿色(优秀)橙色(中等)红色(较差)
首次内容绘制 (FCP)0–1.8 秒1.8–3 秒>3 秒
最大内容绘制 (LCP)0–2.5 秒2.5–4 秒>4 秒
可交互时间 (TTI)0–3.8 秒3.9–7.3 秒>7.3 秒
总阻塞时间 (TBT)0–200 毫秒200–600 毫秒>600 毫秒
累积布局偏移 (CLS)0–0.10.1–0.25>0.25

6.性能优化建议

根据报告中提供的优化建议,可以从以下几个方面提升性能:

  1. 减少未使用的 JS 和 CSS
    • 使用代码分割和按需加载技术。
    • 删除无用的 CSS 和 JS 文件。
  2. 启用文本压缩
    • 配置服务器支持 gzip 或 Brotli 压缩。
  3. 优化图片加载
    • 使用下一代图片格式(如 WebP)。
    • 启用懒加载(Lazy Loading)。
  4. 消除渲染阻塞资源
    • 将关键 CSS 内联到 HTML 中。
    • 为非关键资源添加 asyncdefer 属性。
  5. 开启 HTTP/2
    • 改用 HTTP/2 协议,提高请求效率。
  6. 优化服务器响应时间
    • 使用 CDN 缓存静态资源。
    • 减少重定向请求。

……


总结

  Lighthouse 是前端性能优化的强大工具,通过全面的分析和详细的优化建议,开发者可以发现网页性能问题并进行改进。

参考资料:

  • Google Developers 文档
  • CSDN 博客

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

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

相关文章

优化 LabVIEW 系统内存使用

在 LabVIEW 中,内存使用管理是确保高效系统性能的关键因素,尤其是在进行复杂的数据采集、信号处理和控制任务时。LabVIEW 程序的内存消耗可能会随着项目的规模和复杂度增加,导致性能下降,甚至出现内存溢出或程序崩溃。通过合理优化…

git回退到某个版本git checkout和git reset命令的区别

文章目录 1. git checkout <commit>2. git reset --hard <commit>两者的区别总结推荐使用场景* 在使用 Git 回退到某个版本时&#xff0c; git checkout <commit> 和 git reset --hard <commit> 是两种常见的方式&#xff0c;但它们的用途和影响有很…

无人机理论考试合格证书获取

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 轻型民用无人驾驶航空器安全操控理论培训合格证明 前言无人机特性和应用场景 前言 无人机&#xff08;Drone&#xff09;是一种非常受欢迎的技术产品&#xff0c;广泛应用于…

VBA信息获取与处理第四个专题第二节:将工作表数据写入VBA数组

《VBA信息获取与处理》教程(版权10178984)是我推出第六套教程&#xff0c;目前已经是第一版修订了。这套教程定位于最高级&#xff0c;是学完初级&#xff0c;中级后的教程。这部教程给大家讲解的内容有&#xff1a;跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互…

单链表---合并两个链表

将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 struct ListNode {int val;struct ListNode* next; }; w 方法一---不使用哨兵位 我们创建一个新链表用于合并两个升序链表&#xff0c; 将两个链表中最小的结点依次尾插到…

SD控制器设计:从协议到RTL实战,精通数字IP设计

SD 卡作为一种便捷的存储设备&#xff0c;广泛应用于各类电子设备中。而在这背后&#xff0c;SD 控制器的设计起着至关重要的作用。SD控制器设计是数字集成电路&#xff08;IC&#xff09;设计领域中的一项关键技能&#xff0c;特别是在系统芯片&#xff08;SoC&#xff09;设计…

windows系统的环境变量(系统变量)不能编辑可能是这个原因

有些电脑从开始菜单那搜索“环境变量”后是没法编辑系统变量的&#xff0c;只能从设置里面进”环境变量“来进行编辑。 可以观察到系统环境变量即便是点击到了,但还是无法进行编辑

开发手札:Win+Mac下工程多开联调

最近完成一个Windows/Android/IOS三端多人网络协同项目V1.0版本&#xff0c;进入测试流程了。为了方便自测&#xff0c;需要用unity将一个工程打开多次&#xff0c;分别是Win/IOS/Android版本&#xff0c;进行多角色联调。 在Win开发机上&#xff0c;以Windows版本为主版…

【全网最新】若依管理系统基于SpringBoot的前后端分离版本开发环境配置

目录 提前准备&#xff1a; 下载源代码 设置依赖 设置后台连接信息 运行后台 运行前端 安装npm依赖 启动前端 登录网页客户端 提前准备&#xff1a; 1、安装mysql 5以上就可以。 2、安装redis. 3、安装npm npm下载地址&#xff1a;https://nodejs.org/dist/v22.12…

vscode CMakeLists中对opencv eigen的引用方法

CMakeLists.txt 项目模式&#xff08;只有一个main函数入口&#xff09; cmake_minimum_required(VERSION 3.5)project(vsin01 VERSION 0.1 LANGUAGES CXX)set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON)set(OpenCV_DIR G:/MinGW_Opencv/opencv4.10/opencv…

Leetcode day1.两数相加(2) 2.整数反转(7)

注意点&#xff1a;1.链表会出现其中一个已经为空&#xff0c;另一个缺还是有数据 2.相加时会出现进位操作 解法一、 利用队列的性质&#xff08;基础不好 第一时间想到的&#xff09; 很像队列的性质&#xff0c;先进先出&#xff0c;逐步计算。但是最后要换成链表样式。 …

【大数据技术基础 | 实验十四】Kafka实验:订阅推送示例

文章目录 一、实验目的二、实验要求三、实验原理&#xff08;一&#xff09;Kafka简介&#xff08;二&#xff09;Kafka使用场景 四、实验环境五、实验内容和步骤&#xff08;一&#xff09;配置各服务器之间的免密登录&#xff08;二&#xff09;安装ZooKeeper集群&#xff08…

AndroidAutoSize实战教程:今日头条屏幕适配方案详解

如何在项目中结合 AndroidAutoSize 来进行今日头条屏幕适配&#xff0c;我会具体讲解如何用 AndroidAutoSize 实现屏幕适配&#xff0c;并结合 Kotlin 代码举例分析。 通过 AndroidAutoSize 库来实现屏幕适配&#xff0c;确保在不同的屏幕尺寸、分辨率、密度下&#xff0c;应用…

【贪心算法】贪心算法五

贪心算法五 1.跳跃游戏 II2.跳跃游戏3.加油站3.单调递增的数字 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.跳跃游戏 II 题目链接&…

【Axios】如何在Vue中使用Axios请求拦截器

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

4.5 TCP 报文段的首部格式

欢迎大家订阅【计算机网络】学习专栏&#xff0c;开启你的计算机网络学习之旅&#xff01; 文章目录 前言1 TCP 报文段的基本结构2 固定部分2.1 源端口与目的端口2.2 序号2.3 确认号2.4 数据偏移2.5 保留字段2.6 控制位2.7 窗口2.8 检验和2.9 紧急指针 3 可变部分3.1 选项3.2 填…

MySQL数据集成到广东省追溯平台的销售信息同步方案

销售信息同步--外购上报流程2&#xff1a;MySQL数据集成到广东省特殊食品电子追溯平台 在现代数据驱动的业务环境中&#xff0c;确保销售信息的准确性和及时性至关重要。本文将分享一个具体的技术案例&#xff0c;展示如何通过轻易云数据集成平台&#xff0c;将MySQL中的销售信…

Nginx配置https(Ubuntu、Debian、Linux、麒麟)

Ubuntu操作系统&#xff0c;Debian系统底层是Ubuntu&#xff0c;差异不大 ubuntu 安装nginx 1.安装依赖 sudo apt-get update sudo apt-get install gcc sudo apt-get install libpcre3 libpcre3-dev sudo apt-get install zlib1g zlib1g-dev sudo apt-get install openssl lib…

【优选算法 二分查找】二分查找入门详解:二分查找 & 在排序数组中查找元素的第一个和最后一个位置

二分查找 题目描述 题目解析 暴力解法 我们可以从左往右遍历一次数组&#xff0c;如果存在 target 则返回数组的下标&#xff0c;否则返回 -1&#xff1b; 时间复杂度 O(N)&#xff0c;因为没有利用数组有序的特点&#xff0c;每次比较只能舍弃一个要比较的数&…

Linux镜像文件制作

本文介绍Linux镜像文件制作。 嵌入式系统开发调试及量产需要涉及到Linux镜像文件的制作&#xff0c;本文结合一个实例简要介绍Linux镜像文件的制作。 1.确定磁盘空间布局 在制作镜像文件之前应提前确定好磁盘空间布局&#xff0c;也就是地址空间划分&#xff0c;如这里的磁盘…