Brian De Sousa 怪胎。爸爸。的丈夫。开发人员。旅行者。

核心Web命脉温泉的最佳实践

14分钟阅读4191年

Google Web命脉SPS Nocdn

Web要害是谷歌倡议,旨在定义一组通用的质量信号测量跨Web用户体验。该倡议的目标之一是让网站所有者更容易测量性能工程的站点的性能没有丰富的经验。

在这里,我们看看Google的网页命脉倡议,深度探索核心Web命脉,看看我们可以测量和优化核心Web命脉在单页面应用程序(温泉)。

跳过:

Web命脉计划是什么?

Google的网页重要器官行动包括:

  • 一组指南应该如何衡量网站的性能和用户体验
  • 一系列的指标,被称为Web命脉,衡量某些事件和交互频繁影响用户体验
  • 一组工具和库,简化测量网络重要器官的过程
  • 致力于表面网络重要器官通过谷歌最受欢迎的工具

目前有五个Web要害:

  1. 累积布局转变(CLS)
  2. 第一个输入延迟(FID)
  3. 最大的意旨油漆(LCP)
  4. 第一个意旨漆(FCP)
  5. 第一个字节(TTFB)

CLS, FID检测器,连结控制协定被认为是核心Web命脉。核心网络的重要目的是适用于所有网页无论这些网页是如何构建的。这是一个雄心勃勃的目标,考虑到所有不同类型的网页。我们将仔细看看如何每个核心网络适用于单页面应用程序(水疗)至关重要。

工具来监控核心Web命脉

尽管他们相对较短的寿命,各种工具和包已经可以用来测量核心Web命脉,持续增长。这里有一些常见的工具:

  • Chrome的用户体验报告:这份报告可以用来测量核心Web命脉基于字段的数据真实用户选择让Chrome收集和共享这些数据
  • PageSpeed见解:这个工具可以用来衡量核心Web命脉使用字段数据来自Chrome用户体验报告以及实验室收集的数据和分析了谷歌在一个被控制的环境中
  • 核心Web命脉报告谷歌搜索控制台:谷歌搜索控制台提供了核心Web命脉报告为每个注册网站
  • Chrome DevTools88年:从Chrome DevTools性能选项卡包含一个Web显示的一些核心命脉巷Web要害成绩
  • 灯塔:灯塔6.0(也可在Chrome DevTools)可以生成报告,包括Web要害指标
  • web-vitals:这是一个JavaScript库,可以集成到你的web应用程序,它包含一组简单的函数,捕获核心web至关重要的事件和数据
  • LogRocket:LogRocket Web要害指标与业务相关的影响。除了监视Web命脉,LogRocket监控页面加载时间,CPU /内存使用量,浏览器崩溃,组件呈现反应

web-vitals库添加到一个单页面应用程序

最近的web-vitals npm包添加到web应用程序默认架子工。例如,如果你有一个反应应用程序的最新版本 创建应用程序反应,然后web-vitals包已经包含在您的解决方案。

否则,前往了 npm web-vitals包页面,那里有详细说明如何在应用程序中安装和配置方案。

测量和改善水疗的核心Web要害成绩

当我们更密切地观察每一个核心Web要害,我们还将使用这些工具的一些行动。我们将使用 北部度假后院的解决方案样本SPA模拟情况导致弱网络重要器官。样例应用程序的源代码 GitHub上可用。

北方度假后院使用创建应用程序反应生成解决方案演示应用程序,所以不需要额外的web-vitals包安装。为了方便起见,核心Web要害成绩显示在顶部的应用程序可用:

北部度假Backyard-solutions演示应用程序的主页
Web要害成绩显示顶部的演示应用程序。

记住Web要害成绩将不同用户之间由于变量如网络连接速度、设备类型,屏幕分辨率,浏览器窗口大小和更多。如果你按照演示应用程序中打开设备,你应该期待网络要害成绩不同,但结果应该是相似的。

累积布局转变(CLS)

累计量化一个网页的视觉稳定性布局转变。也许最平易的例子涉及页面广告布局转变。大多数用户发现自己阅读内容网页,文本降档,有时甚至屏幕广告加载和插入到页面中。这种不舒服的用户体验是CLS试图衡量。

的 布局稳定性API是一个规范,它定义了如何测量CLS和被认为是一个布局转变。根据这个规范,并不是所有的布局变化计入CLS得分。例如,CSS转换或用户滚动页面不影响CLS得分。

CLS分数从0开始。最初的CLS评分算法增加了CLS视窗为元素转移到下一个页面加载事件。这个算法可能导致不合理的高CLS分数对长寿的页面,如单页面应用程序。想象一个单页面应用程序和客户端路由。每个路由变化显示新的内容,这是预期的行为,然而,CLS分数不断增加。

作为回应,2021年4月7日,谷歌 宣布了一项修改CLS评分算法为长寿页面提供更好的得分。这一修改,布局转变将被分成5 s(最大值)窗口,每个窗口1 s差距。测量每个布局改变窗口的布局稳定的API。在随后的页面加载事件,最高的窗口CLS分数成为前一页的CLS得分。

让我们看一个示例布局转变。导航到 我们的工作北部度假后院的解决方案演示应用程序页。一旦页面完全加载,加载页面查看CLS得分。记住,CLS只能测量下一个页面加载事件发生后。CLS分数你看到现在反映发生在前一页的布局转变。

北部度假后院Cli得分的解决方案
图片在我们的工作页面加载时移动。

我们的工作页面模拟异步加载图片在一个缓慢的互联网连接。图像尺寸没有在代码中指定。之前因为每个图像加载,加载图像视窗内的移动,可以归类为布局转变。记住,CLS得分取决于有多少页面在窗口是可见的。

合成CLS分数大约是1.06,这是不好的——事实上,根据谷歌的CLS分数范围,任何超过0.25被认为是贫穷。

那么如何提高我们的工作页面的CLS分数吗?在这种情况下的解决方案非常简单。如果您定义每个图像的宽度和高度,浏览器将知道多少空间分配的形象。浏览器能够准确地确定每个图像将出现在屏幕前负荷。

常见的布局变化的来源

我们看着一个布局变化的例子在前面的例子中,但还有许多其他来源的布局转变。这里有一些常见的来源和解决方案。


超过200 k开发者使用LogRocket创建更好的数字体验

了解更多→

的布局转变 解决方案
一个图像或视频与未知的维度
  • 定义一个宽度和高度的图像或视频元素所以浏览器可以在视窗中保留空间,避免布局转变
一个字体,它显示大于或小于后备字体
  • 使用font-display风格告诉浏览器使用回退字体如果主字体尚未呈现文本元素时可用
  • 预先加载字体需要提前使用rel = "预加载",=“字体”,类型=字体/ woff2字体链接元素上的属性告诉浏览器预装和优先的字体下载
第三方广告或小部件,动态地调整自己
  • 这很难解决,如果广告或小部件没有提供尺寸。一些广告故意造成布局转变。试着尽可能保留空间
  • 测试你的CLS得分与广告启用和禁用了解多少你的广告影响CLS得分。您可能需要使用实验室数据而不是字段数据的测试,但它仍然会给你一个粗略的最糟糕的转变是发生在你的页面布局

最大的意旨油漆(LCP)

最大的意旨油漆措施页面的加载时间的主要内容。想法是,用户感知网页加载速度多快页面的主要内容变得可见。一旦主要内容是可见的,用户觉得页面加载即使较小的周边元素可能仍然被加载。

页面的主要内容是由确定最大的图像或文本块在浏览器窗口可见。块可以是一个图片,视频,一块包含文本的元素,甚至通过CSS背景图像加载。

的 最大的意旨油漆API定义了一个允许元素的完整列表。这个列表是故意短而简洁的保持简单的度量。API还指定了一个元素的大小是如何计算的,考虑的元素只有部分可见的窗口和其他类似的细微差别。

让我们看一看一个连结控制协定的例子。导航到 家北部度假后院的解决方案演示应用程序页。大约4 s,应该完全加载的页面。水龙头或者点击在屏幕上任意强制浏览器报告连结控制协定。后第一个与页面交互,不再有意义继续跟踪和报告后续交互连结控制协定以来可能故意改变什么是可见的在页面上。

演示应用程序测量链路的主页

连结控制协定分数约0.9秒。请记住,连结控制协定分数会根据网络速度和浏览器窗口的大小。在这种情况下,浏览器笔记本电脑屏幕上完全展开了1920×1080分辨率。

东西不是在这里!主页是专门设计来加载主要的文本块4 s后,然而,连结控制协定得分是0.9秒。表面上看,似乎是最大的块屏幕上的文本块,因此,连结控制协定分数应该是4000 (4 s)或更高。严格基于测量,主要文本块肯定是大于头:

演示应用程序测量链路的主页
比较文本块的大小和标题块在主页上。

我们可以使用灯塔在Chrome DevTools连结控制协定时在屏幕上显示的是报道。打开示例程序和DevTools Chrome。按照以下步骤生成一个灯塔报告Web要害:

  1. 切换到灯塔选项卡
  2. 禁用模拟节流选择报告度量这灯塔与指标显示在页面上
  3. 选择性能类别
  4. 单击生成报告按钮

    灯塔选项卡关闭模拟节流生成报告
    在Chrome DevTools灯塔。

一旦生成报告,点击视图跟踪按钮。

报告生成视图跟踪按钮
灯塔的报告。

水平滚动的计时游道,直到你找到连结控制协定标志。扩大泳道看到截图页面目前连结控制协定的报道。

计时游泳巷连结控制协定标志灯塔报告
连结控制协定对灯塔报告标记。

连结控制协定后的截图之前和标记表明,该标头块为推动连结控制协定的分数。我们可以证明这一点,暂时更新应用程序的源代码,隐藏标题,然后重新运行灯塔报告。

灯塔报告连结控制协定标志隐藏标题
连结控制协定标志在灯塔报告后隐藏的头。

连结控制协定分数现在约4.5年代,约的时间主要文本块出现在屏幕上。让我们看看主要的源代码文本块:

< div className = {' $ {contentLoaded吗?“:‘隐藏’}}> < h2 >欢迎后院居民!< / h2 > < p >混乱你的后院?< / p > < p >你偷看你邻居的篱笆,认为“我希望我有”?< / p > < p >你厌倦了你的车后窗看着老地盘天堂?< / p > < p >你有到达正确的位置。我们在北方度假后院解决方案想呕吐的尴尬的后院变成终极pandemic-era度假。< / p > < p >我们将与你共同开发一个高超的建筑计划把你的梦想变成现实。然后我们将开始清除穗轴<强> web < /强>年代和re <强> < /强>减小你的后院空间至关重要。< / p > < p >最好的部分是,我们只会采取适度削减现金你救了整个大流行。< / p > < p >查看< a href = " # / ourwork " > < / >工作看到它,相信它!< / p > < / div >

如果你还记得,连结控制协定是基于需要多长时间最大的块级元素呈现在窗口。在样例源代码中,每个段落元素是块级元素。连结控制协定实际上是由于报道呈现一个段落元素,哪个是最大的。同样重要的是要注意,连结控制协定API并不包括填充或利润的计算。

连结控制协定适用于单页面应用程序

就像其他Web命脉,连结控制协定只是测量了最初在页面加载的时候。考虑一个单页面应用程序客户端路由和异步加载内容。第一个路由应用程序可能很快负载。

一旦用户与网页交互——导航到一个不同的路线,比如- LCP分数报道。在这一点上,网络重要器官不会跟踪连结控制协定后续客户端路由变化。取决于应用程序设计,连结控制协定可能提供有限的测量值的用户体验。

解决贫困连结控制协定分数

主页的例子模拟加载缓慢的内容。在真实的场景中,这些内容可能来自后端API经常负载较重的情况下,不能在合理的时间内做出反应。有许多可能的修复对于这个场景,包括:

  1. 扩大你的API的能力,它可以处理预计卷
  2. 确保与适当的HTTP缓存API返回响应标头,以便后续反应可以从浏览器缓存
  3. 如果返回的内容API是相对静态的,添加一个CDN服务的API服务缓存响应从服务器位于接近用户

第一个输入延迟(FID)

首先输入延迟措施快速页面如何回应用户的交互。其他Web命脉倾向于关注如何快速用户在屏幕上看到的东西,但这个指标侧重于初始与页面交互和用户感知。很高兴如果你的页面加载和显示极快,但用户体验可能仍然贫穷,如果用户无法立即与页面交互。

FID很难理解。这措施之间的时间当用户第一次在一个页面上点击或水龙头时,浏览器实际上是能够开始处理结果事件——但不是需要多长时间事件的应用程序必须做什么。

例如,假设一个用户的第一个与网页交互是点击一个按钮。浏览器无法响应点击事件为100毫秒,因为它的主要线程正忙着执行JavaScript页面加载启动。一旦浏览器能够回应,单击事件需要额外的200毫秒完成。报告支撑材100 ms。

让我们看一看一些示例FID分数北部度假后院解决方案演示应用,导航到 得到估计页面。点击估计类型下拉迫使FID报告。

样本FID分数评估页面
测量FID得到评估页面。

支撑材分数大约是1.6毫秒,远低于得分≥100 ms的谷歌认为贫穷。这是关于尽善尽美。得到估计页面并没有多发生在幕后;用户可以与形式几乎瞬间一旦它在浏览器中变得可见。

让我们添加以下cpu密集型事件处理程序上的单击事件电子邮件地址字段。你认为支撑材分数会受到影响吗?

函数doSomethingSlow(){控制台。时间(“onClick事件处理程序”);const baseNumber = 12;让结果= 0;我(var =数学。战俘(baseNumber 7);我> = 0;我——){结果+ = Math.atan(我)* Math.tan(我);};控制台。日志(结果是${结果}); console.timeEnd('onClick event handler'); };

重新加载 得到估计页面。之前点击页面,打开Chrome DevTools,控制台是可见的。点击电子邮件地址文本框中。浏览器将锁定在cpu密集型函数执行时4 - 5。一旦函数完成,FID得分将会出现在屏幕的顶部,和功能结果将出现在DevTools控制台。

得到估计页面重新加载邮件地址框
测量支撑材得到的估计与cpu密集型功能页面。

这次,FID分数大约在1.49毫秒,甚至低于1.6毫秒从前面的示例。这表明FID不包括时间执行事件处理程序本身。

测量支撑材

你衡量FID分数不同于你如何衡量其他核心Web命脉。连结控制协定和CLS可以测量在实验室环境中使用各种各样的工具,但FID只能测量在现场与真实用户。

测量支撑材测试时候,谷歌建议你看看总阻塞时间(TBT)网络至关重要。尽管TBT支撑材不一样,它提供了一些见解长任务阻塞主线程超过50毫秒之前页面的用户交互。这些长任务可能导致一个贫穷的FID得分。

测量支撑材领域,您需要使用工具能够访问数据的收集真实用户与之交互的页面。页面速度的见解可以提取数据从Chrome用户体验报告页面,提供一个支撑材总得分。这个假设已经有足够的用户访问页面也选择在Chrome用户体验提供数据报告。

支撑材适用于单页面应用程序

就像其他Web命脉,支撑材只是测量在第一次与页面交互。FID不会对后续识别不良的用户体验交互页面上或在随后的路线在一个单页面应用程序交互,使用客户端路由。

无法与元素在屏幕上可以是非常令人沮丧的用户,特别是用户可能无法确定锁定期是由于页面本身或其浏览器或系统锁定。根据你的情况,也许意义来实现自定义支撑材监视所有客户端路由变化。

固定支撑材差分数

第一次输入延迟和主线程阻塞可能是由于许多事情。这里有一些例子和可能的解决方案:

  • 如果你有复杂的和/或大量的JavaScript下载并运行在第一个页面加载,考虑打破,延迟加载组件,通常尽可能简化您的解决方案。记住,所有JavaScript解析、编译和在主线程上执行
  • 如果你的网页加载第三方脚本,分析支撑材分数和考虑是否这些脚本可能会导致糟糕的分数
  • 大量的数据处理和存储在浏览器中会导致沉重的主线程使用。考虑减少加载到内存的数据量在初始页面加载和将军
  • 考虑使用Web Worker长时间运行的任务在一个单独的后台线程。这可以释放能力主线程可以更迅速地响应用户交互事件

核心Web命脉总结

下面的表总结了每个核心Web命脉。

核心网络至关重要 定义 它是如何测量的
累积布局转变(CLS) 网页的视觉稳定性由最初加载页面时的布局转变
  • CLS测量从一个页面加载,直到下一个触发页面加载
  • CLS分数从0开始(最好的分数)和增量为元素在屏幕上的转变
  • CLS分数≥0.25被认为是贫穷
  • 只有可见的布局变化导致CLS分数增量
  • CSS转换和用户滚动CLS分数没有影响
  • 2021年4月9日之后,工具,计算CLS将开始采用谷歌的CLS修改算法,这组布局转向基于时间的窗口,导致一个更合理的CLS评分方法单页面应用程序
最大的意旨油漆(LCP) 需要加载的时间最大的元素在屏幕上
  • 连结控制协定是在几秒钟内从一个页面开始加载,直到最大的元素呈现
  • 的连结控制协定评分≥4 s被认为是贫穷
  • 只有一个子集的元素被认为是在计算连结控制协定,包括图像、CSS背景图像和文本块级元素
  • 连结控制协定报告一旦用户与页面交互,即使还没有完全加载的页面
第一个输入延迟(FID) 的时间在用户的第一次与页面交互和浏览器的交互反应
  • FID测定当用户点击或水龙头一个页面时,浏览器触发的事件处理程序。事件处理程序完成的时间并不影响FID得分
  • 的FID分数≥100 ms被认为是贫穷
  • 滚动和缩放页面不会触发FID得分
  • FID仍然是衡量即使交互不触发一个事件处理程序;支撑材中可用的工具,不仅仅是成绩分析实验室数据(例如,灯塔)
  • FID分数中可用的工具,获得现场数据(例如,页面速度见解)

下一个Web要害是什么?

有 积极的讨论Google Chrome团队和SPA开发商之间关于核心Web命脉单页面应用程序的适用性。这些讨论已经导致了变化,特别是 CLS的进化。谷歌还表示,核心Web命脉将随时间而变化。我们可能会看到新的Web命脉兴起和添加或替换现有的核心Web命脉。

支持Web要害之外的谷歌工具继续增长。一个快速搜索Web Vitals-related npm包 取得了27日的结果在写作的时候。这些搜索结果包括包与一些当今最流行的前端集成库和框架,包括反应,Vue。js, Nuxt。js和盖茨比。

也许最大的暗示Web要害是留在这里是谷歌将包括Web页面体验的重要指标信号导致谷歌排名的搜索结果。谷歌似乎在所有Web命脉;这除了保证一些长寿这种测量方法的用户体验。

想提高你的核心Web命脉?看看究竟是什么影响你的分数为所有用户在生产中 LogRocket

LogRocket性能监控

LogRocket帮助软件开发团队解决问题,提高转化率,推动产品接触。LogRocket,您可以监视页面加载时间,CPU /内存使用量,浏览器崩溃,组件呈现反应。您还可以看到性能如何影响转化率和参与。

LogRocket自动监视所有核心Web要害,向您展示如何将这些指标影响用户体验。

你的前端性能监控——现代化 尝试LogRocket免费。

Brian De Sousa 怪胎。爸爸。的丈夫。开发人员。旅行者。

似乎做了吗?电子邮件 (电子邮件保护)

Baidu
map

代做工资流水公司临沂代做流水常州房贷流水办理肇庆代开工资代付流水深圳开贷款工资流水湖州代开工资流水遵义做背调流水上饶薪资银行流水制作泰安银行流水模板济宁代开日常消费流水绵阳贷款银行流水代办潍坊代办房贷银行流水宜昌入职银行流水制作太原打银行对公流水荆州对公流水查询济南银行对公流水公司唐山企业对私流水打印太原背调流水样本临沂消费贷流水图片厦门做车贷银行流水株洲查询签证工资流水南宁开签证流水潮州制作工资流水单北京背调流水盐城查房贷银行流水沧州办理签证流水哈尔滨公司银行流水泉州银行流水账单开具威海代做工资流水账单石家庄对公流水价格大连办企业银行流水香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化