浏览器 插件 Lighthouse

Lighthouse是一款开源的自动化工具,它能够帮助改善你的web应用程序的性能、质量和正确性。你可以在任何网页上运行它,无论是公开的还是需要认证的。

Lighthouse有一款Chrome扩展插件,也可以在Chrome DevTools中使用,或者作为Node模块来运行。输入你要审计的URL,Lighthouse将对页面运行一系列的审计。目前,Lighthouse除了在Chrome浏览器中有扩展插件外,还有火狐浏览器的扩展插件可供下载。

网页性能指标(Web Performance Metrics)是一种理解和改进网站体验的关键工具,这些体验直接影响真实用户。下面是一些重要的性能测量指标:

1. 最大内容绘制(Largest Contentful Paint,LCP):这个指标量化了用户在页面初始加载时看到最大图像或文本块的时间。

良好的 LCP 得分是多少:
为了提供良好的用户体验,网站应努力将 Largest Contentful Paint 控制在 2.5 秒以内。为确保您的大多数用户都达到此目标,最好衡量一下网页加载的第 75 个百分位(按移动设备和桌面设备细分)。
根据 Largest Contentful Paint API 中当前的规定,Largest Contentful Paint 考虑的元素类型包括:
一个元素,带有使用 url() 函数(而不是 CSS 渐变)加载的背景图片
包含文本节点或其他内嵌级文本元素子元素的块级元素。
请注意,将元素限制在这一有限集合内是我们有意为之,目的是在开始时尽量简单。随着开展更多研究,未来可能会添加其他元素

除了仅考虑部分元素之外,LCP 衡量功能还会使用启发法来排除用户可能会认为“无内容”的特定元素。对于基于 Chromium 的浏览器,其中包括:

不透明度为 0 的元素,用户看不到这些元素
覆盖整个视口的元素可能被视为背景而非内容
占位符图片或其他低熵图片,可能无法反映网页的实际内容
浏览器可能会继续改进这些启发词语,以确保达到用户对最大的内容元素是什么的预期。

这些“内容性”启发式算法可能与 First Contentful Paint (FCP) 使用的启发法不同,后者可能会考虑其中部分元素(例如占位符图片或完整视口图片),即使它们不符合 LCP 候选条件也是如此。尽管两者的名称中都使用了“contentful”,但这两个指标的目的却不同。FCP 衡量的是任何内容绘制到屏幕上的时间,LCP 用于绘制主要内容,以便 LCP 更有选择性。

如何确定元素的大小?
针对 LCP 报告的元素尺寸通常是用户在视口内可见的尺寸。如果该元素延伸至视口之外,或者有任何元素被剪裁或存在不可见“溢出”,这些部分就不会计入元素的尺寸。overflow

对于根据固有尺寸调整过大小的图片元素,报告的尺寸为可见尺寸或固有尺寸(以较小者为准)。

对于文本元素,LCP 只会考虑能够包含所有文本节点的最小矩形。

对于所有元素,LCP 都不会考虑使用 CSS 应用的外边距、内边距或边

3. 累计布局偏移(Cumulative Layout Shift,CLS):这个指标量化了页面在加载期间的所有意外的布局偏移。此指标可帮助开发人员理解用户对页面稳定性的感知。
良好的 CLS 得分是什么:
为了提供良好的用户体验,网站应努力使 CLS 得分不超过 0.1。为确保您的大多数用户都达到此目标,最好衡量一下网页加载的第 75 个百分位(按移动设备和桌面设备细分)。
布局偏移详情
布局偏移由 Layout Instability API 定义。只要视口内可见的元素在两帧之间更改起始位置(例如,写入模式中的顶部位置和左侧位置),该 API 就会报告 layout-shift 条目。此类元素被视为不稳定元素。

请注意,仅当现有元素更改其起始位置时,才会发生布局偏移。如果将新元素添加到 DOM 或现有元素更改了大小,只要此类更改不会导致其他可见元素更改其起始位置,系统便不会将其视为布局偏移。

布局偏移得分
为了计算“布局偏移得分”,浏览器会查看视口大小,以及视口中不稳定元素在两个渲染帧之间的移动情况。布局偏移分数是该移动两种衡量方式的乘积:影响分数和距离分数(两者的定义见下文)。

layout shift score = impact fraction * distance fraction
4. 交互至下一次绘制(Interaction to Next Paint,INP):这个指标衡量的是用户与页面交互后,页面多久能绘制出一些反馈。
INP 得分是多少:
很难在响应能力指标上固定“良好”或“差”等标签。一方面,您需要鼓励优先考虑良好响应能力的开发实践。另一方面,您必须考虑这样一个事实,即人们用来设定实现预期开发期望的设备的功能有很大的差异。

为确保提供良好的响应速度的用户体验,最好衡量一下实际记录的网页加载的第 75 个百分位(按移动设备和桌面设备细分):

INP 低于或等于 200 毫秒表示网页响应良好。
INP 高于 200 毫秒且低于或等于 500 毫秒表示网页的响应能力需要改进。
INP 高于 500 毫秒表示网页响应速度很差。

5. 首字节时间(Time to First Byte,TTFB):这个指标衡量的是从请求发送到从服务器接收到第一个字节所花费的时间,这是一个网络响应期限的关键指标。
TTFB 得分是多少:
由于 TTFB 发生在以用户为中心的指标(例如首次内容绘制 (FCP) 和 Largest Contentful Paint (LCP))之前,因此我们建议您的服务器足够快速地响应导航请求,以便第 75 百分位的用户遇到“良好”阈值内的 FCP。一般来说,大多数网站都应尽量将 TTFB 控制在 0.8 秒以内。

良好的 TTFB 值为 0.8 秒或更短,不良值大于 1.8 秒,两者之间的任何值都需要改进
良好的 TTFB 值为 0.8 秒或更短,不良值大于 1.8 秒。
要点:由于 TTFB 不是核心网页指标指标,因此网站并不是绝对必须具有出色的 TTFB,只要较长的 TTFB 不会使您的网站更难在重要指标上获得较高的得分。在优化加载时间时,请考虑您的网站传送内容的方式。如果某个网站快速提供初始标记,然后不得不等待脚本填充有意义的内容(如单页应用 [SPA] 通常就是这种情况),那么较低的 TTFB 尤为重要。另一方面,对于由服务器渲染的网站,不需要太多客户端工作,即使其 TTFB 更高,FCP 和 LCP 值也会比客户端渲染的网站更高。

6. 首次内容绘制(First Contentful Paint,FCP):这个指标报告的是浏览器第一次渲染来自DOM的任何文本、图像、非白色canvas或SVG的时间。

FCP 得分良好是多少:
为了提供良好的用户体验,网站的 FCP 不得超过 1.8 秒。为确保您的大多数用户都能达到此目标,建议您衡量第 75 个百分位的网页加载情况(按移动设备和桌面设备细分)。
衡量 JavaScript 中的 FCP
如需在 JavaScript 中测量 FCP,请使用 Paint Timing API。以下示例展示了如何创建一个 PerformanceObserver,用于监听名为 first-contentful-paint 的 paint 条目并将其记录到控制台中。

new PerformanceObserver((entryList) => {for (const entry of entryList.getEntriesByName('first-contentful-paint')) {console.log('FCP candidate:', entry.startTime, entry);}}).observe({type: 'paint', buffered: true});

警告 :此代码展示了如何将 first-contentful-paint 条目记录到控制台中。在 JavaScript 中衡量 FCP 则更为复杂。
在此示例中,记录的 first-contentful-paint 条目会告诉您第一个内容元素的绘制时间。不过,在某些情况下,此条目对衡量 FCP 无效。

以下部分列出了 API 报告的内容与指标计算方式之间的差异。

指标与 API 的区别
API 会为后台标签页中加载的网页分派 first-contentful-paint 条目,但在计算 FCP 时应忽略这些网页。只有当网页始终在前台运行时,系统才会考虑首次渲染时间。
从往返缓存中恢复网页时,API 不会报告 first-contentful-paint 条目,但在这些情况下,应衡量 FCP,因为用户将它们视为不同的网页访问。
API 可能不会报告跨源 iframe 的绘制时间,但为了正确衡量 FCP,您必须考虑所有帧。子帧可以使用该 API 将其绘制时间报告给父帧以进行汇总。
API 从导航启动时开始测量 FCP,但对于预渲染的网页,应通过 activationStart 测量 FCP,因为 FCP 对应于用户经历的 FCP 时间。
开发者可以使用 web-vitals JavaScript 库来衡量 FCP,而无需记住所有这些细微差异,该库会尽可能为您处理这些差异(iframe 中除外):

import {onFCP} from 'web-vitals';// Measure and log FCP as soon as it's available.
onFCP(console.log);				

7. 总阻塞时间(Total Blocking Time,TBT):这个是一个实验性的指标,它量化了在首次内容绘制(First Contentful Paint)和时刻可交互(Time to Interactive)之间,页面主线程被阻塞了多长时间。

TBT 得分是多少:
为了提供良好的用户体验,在普通移动硬件上测试网站时,网站的 TBT 应低于 200 毫秒。

如果您还想详细了解可以去https://web.dev/articles 搜索相关内容。

以上就是文章全部内容了,如果喜欢这篇文章的话,还希望三连支持一下,感谢!

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

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

相关文章

【代码随想录】【算法训练营】【第41天】 [416]分割等和子集

前言 思路及算法思维,指路 代码随想录。 题目来自 LeetCode。 day 40,休息,休息一下~ day 41,艰难的周一~ 题目详情 [416] 分割等和子集 题目描述 416 分割等和子集 解题思路 前提:是否可以将数组分为和相等的…

css中content属性你了解多少?

在CSS中,content属性通常与伪元素(如 ::before 和 ::after)一起使用,用于在元素的内容之前或之后插入生成的内容。这个属性不接受常规的HTML内容,而是接受一些特定的值,如字符串、属性值、计数器值等。 以…

计算机组成原理-期末考前常见简答题总结

1、简述冯-诺伊曼计算机的主要设计思想,它有哪些部件构成? 主要思想:存储程序和程序控制。将解题程序防止存储器中,程序控制:控制器顺序执行程序,按指令功能控制全机协调地完成运算任务。主要部件有控制器…

从零开始精通Onvif之图片抓拍

💡 如果想阅读最新的文章,或者有技术问题需要交流和沟通,可搜索并关注微信公众号“希望睿智”。 概述 在视频监控系统中,图片抓拍功能(也称为快照功能)是指通过摄像头或其他视频采集设备,将实时…

NPM 包管理器简介

目录 官方数据 npm 简介 包 安装所有依赖 安装单个包 更新包 版本控制 运行任务 官方数据 包量高达310w, 6月份的第三周下载量高达600亿,5月份下载量更是高达2473亿,这惊人的数字无外乎体现当今互联网的活跃程度和仍旧处于高速发展阶…

Web前端开发实战:HTML5+CSS3+JavaScript+Vue+Bootstrap

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…

IT入门知识第四部分《数据库》(4/10)

目录 1. 数据库基础 1.1 数据库的定义 1.2 数据库的关键概念 数据模型 数据库架构 数据库操作语言(DML 和 DDL) 总结 2. 关系型数据库 2.1 MySQL MySQL 的历史和特点 MySQL 的安装和配置 MySQL 的基本操作 2.2 PostgreSQL PostgreSQL 的特…

相似性搜索揭秘:向量嵌入与机器学习应用

引言 在当今数据驱动的世界中,有效地检索和利用信息是一项关键挑战。在数据库、搜索引擎和众多应用程序中,寻找相似数据是一项基本操作。传统数据库中,基于固定数值标准的相似项搜索相对直接,通过查询语言即可实现,如…

聚四氟乙烯离心管 四氟反应管 消解管 PTFE螺口带盖管 特氟龙试管

一、产品介绍 样品悬浮液盛放在管状试样容器中,在离心机的高速旋转下,由于巨大的离心力作用,使悬浮的微小颗粒 以一定的速度沉降,从而与溶液得以分离。这种带密封盖或压盖的管状试样容器,就是离心管。 PTFE离心管&…

【机器学习】第9章 降维算法——PCA降维

一、概念 1.PCA (1)主成分分析(Principal ComponentAnalysis,PCA)一种经典的线性降维分析算法。 (2)原理,这里以二维转一维为例,原来的平面变成了一条直线 这是三维变二…

车载学习:UDS诊断、ECU刷写、OTA升级、Tbox测试、CANoe实操

每天的直播时间: 周一至周五:20:00-23:00 周六与周日:9:00-12:00,14:00-17:00 TBOX 深圳 涉及过T-BOX测试吗Ota升级涉及的台架环境是什么样的?上…

oracle的堆栈的实现方式

在Oracle的堆栈实现上,我们首先需要明确,Oracle Stack并不是直接指代某种特定的堆栈数据结构实现,而是指以Oracle公司的产品为基础构建的完整技术堆栈。但如果你是在询问Oracle环境中如何实现类似堆栈的数据结构,或者如何在Oracle…

PHP蜜语翻译器在线文字转码解码源码

源码介绍 PHP蜜语翻译器在线文字转码解码源码 文字加密通话、一键转换、蜜语密码 无需数据库,可以将文字、字母、数字、代码、表情、标点符号等内容转换成新的文字形式,通过简单的文字以不同的排列顺序来表达不同的内容!支持在线加密解密 有多种加密展示…

如何在windows中创建linux的sh文件

对于非linux的使用者,我们可能希望把sh文件在windows中创建好,然后再复制到linux中使用。因为我们更喜欢windows的风格。 我们在win中创建了一个叫test.txt的文本文件,把linux脚本内容写好,保存。然后把.txt改成.sh。为什么要这么…

数学_笔记

一、数学的主要分支 1. 纯数学(Pure Mathematics): 研究数学本身的理论和结构,不考虑其实际应用。 - **代数学(Algebra)**:- **线性代数(Linear Algebra)**&#xff1…

SpringCloud之Nacos

SpringCloud之Nacos 一、微服务介绍 1. 什么是微服务 2014年,Martin Fowler(马丁福勒 ) 提出了微服务的概念,定义了微服务是由以单一应用程序构成的小服务,自己拥有自己的进程与轻量化处理,服务依业务功能…

测试用例设计:提升测试覆盖率的策略与方法

测试用例设计:提升测试覆盖率的策略与方法 前言测试用例设计的原则提高测试覆盖率的方法测试类型的分析 测试用例设计的基本方法等价类划分边界值分析正交法判定表法因果图法 方法与策略方法策略 如何评价测试用例结论 前言 在软件开发过程中,测试用例设…

Spring Boot集成websocket实现webrtc功能

1.什么是webrtc? WebRTC 是 Web 实时通信(Real-Time Communication)的缩写,它既是 API 也是协议。WebRTC 协议是两个 WebRTC Agent 协商双向安全实时通信的一组规则。开发人员可以通过 WebRTC API 使用 WebRTC 协议。目前 WebRTC…

WPF学习(4)--SCICHART学习

一、项目创建过程 1.下载SCICHART插件 2.选中第一个&#xff0c;确保引用中有我们要用的 二、示例代码 1.前端代码 <Window x:Class"SciChart.Examples.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"h…

centos 7无需token编译安装freeswitch 1.10.11 ——筑梦之路

准备工作 安装编译工具和依赖包 yum update -y sudo yum install epel-release vim tcpdump net-tools.x86_64 -y sudo yum install gcc-c sqlite-devel zlib-devel libcurl-devel pcre-devel speex-devel ldns-devel libedit-devel openssl-devel git -y yum install yasm n…