- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否有人可以解释什么是计时指标 Next.js-before-hydration
和 Next.js-hydration
均值,以及它们与 FCP 的关系。这是针对服务器端渲染并在客户端使用钩子(Hook)的 NextJS 应用程序。
这是性能选项卡测量的屏幕截图,它是一个新的页面加载,它将命中 React 服务器和 SSR。这个特定页面的组件在页面稳定之前也会在客户端重新呈现多次。我从最初的请求开始放大到该区域,并包括初始核心网络生命体征,如 FCP 和 LCP。 (TTI 和 TTFB 在屏幕外出现的时间要晚得多。)
看来Next.js-before-hydration
恰好在服务器请求开始时开始。 (幻灯片似乎显示了以前在浏览器中的页面的缩略图,这似乎是一个 devtools 错误,所以忽略它。)Next.js-before-hydration
在这个例子中持续 1.48 秒,但对于这个请求,TTFB 只有 120 毫秒,所以我知道它包括的不仅仅是服务器响应时间。
我知道FCP是“TTFB+内容加载时间+渲染时间”,所以我认为Next.js-before-hydration
必须是其中的一个子集,但我看过其他网站的示例(ticketmaster.com 就是一个示例),其中 Next.js-before-hydration
结尾远远超出 FP/FCP 和 Next.js-hydration
甚至更晚结束 - 有时就在 onLoad 事件之前(红色 L
)。
在我们到达 Next.js-hydration
之前,内容开始逐渐显示。 (在图像中标记为 Next.js...dration
),这让我认为它已经开始运行钩子(Hook)并重新渲染。
那么当 NextJS 从 Next.js-before-hydration
转换时是什么意思?至 Next.js-hydration
?它与“第一次”渲染何时完成(意味着每个组件第一次加载,就像 React Profiler 中的第一次渲染)以及钩子(Hook)何时开始运行有关?
最后,Next.js-hydration
的结尾是什么?这两个指标与 FCP 有何关系?
最佳答案
经过几个星期的学习和调查,我想答案基本上是——
FCP 与 Next.js-hydration
几乎没有直接关系。或 Next.js-before-hydration
.
部分原因是“渲染”一词的定义混淆。
FCP 确实是“TTFB + 内容加载时间 + 渲染时间”。但在这种情况下,“渲染”与 React 对“渲染”的定义无关。在这种情况下,“渲染”更多地是关于在绘制之前发生的 html 渲染阶段。并且许多浏览器可能会尝试将元素绘制到屏幕上,甚至在 Dom 内容加载完成之前(甚至可能在 domInteractive 之前,我不确定)。
所以,有时 FCP 可能发生在 Next.js-before-hydration
之前已完成,在其他情况下,它可能要到以后才会发生。在问题的示例中,性能测量处于开发模式,这可能会延迟 FCP。
至于Next.js-before-hydration
的区别和 Next.js-hydration
,要记住的见解是,在加载所有必要的 react 库之前,甚至不可能进行水合作用。
这意味着 Next.js-before-hydration
,根据定义,包括:
Next.js-hydration
之后完成协调(额外的提交/渲染)成为可能。
关于reactjs - Next.js-before-hydration、Next.js-hydration 和 FCP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66845811/
是否可以在 Next.js 中强制执行仅 SSR 模式并且仅部分 hydration 页面?假设我有这个应用程序: 组件/dynamic.jsx export default () => ( c
我想扩展 ObjectHydrator 以受益于我的 ManyToOne 关系的 hydration 并向实体添加额外的字段。 这是我的 Hydrator :StatisticsDataHydrato
我想知道是否有人可以解释什么是计时指标 Next.js-before-hydration和 Next.js-hydration均值,以及它们与 FCP 的关系。这是针对服务器端渲染并在客户端使用钩子(
我需要以一种形式对多个对象进行 hydration 。这是我使用的: 产品表格 - 我有一个表格,我称之为三个字段集 产品字段集 促销字段集 类别字段集 我有所有必要表格的模型,这是产品模型的示例:
我有可以执行的下一个代码,但是需要太多时间...有什么办法可以使我用createQueryBuilder和update方法来优化它? 这是当前功能: private function getCsv(
来自 React 16 docs关于ReactDOM.Hydrate(), Same as render(), but is used to hydrate a container whose HTM
有几个线程讨论了数据 hydration 的含义。 但我找不到数据 dehydration 的任何定义。 我可以看出三种可能的含义 1) Extracting the current state of
我创建了几个共享 Bundle 的模块化应用程序。其中一个包负责处理所有实体/存储库相关的逻辑(我们称之为 MyBundle)。 这个 MyBundle 包含几个自定义 Hydrator 。鉴于教义配
将Vue异步组件与SSR一起使用会导致页面刷新时重新补水。有没有一种方法可以不导致组件无故更新?来自SSR和客户端的标记是相同的。 https://vuejs.org/v2/guide/compone
我有一个为许多客户端提供数据的持久层。我还有一个规范化的表结构,这意味着值分布在各个表中。我想设计我的持久性服务以确保依赖于它的服务进行最少的往返:如果可能,不超过一次。 鉴于此,我应该关注什么以获得
Angular Universal 用于服务器端渲染。 我有一个功能齐全的 Angular 应用程序。增加FCP。我需要与服务器端渲染相结合。 Angular 是否通用允许动态 SSR。在服务器端加载
编辑 2018-05-22:没有答案完全固定的问题 - 无法再复制问题,因为不再具有访问权限。不删除基于 this meta discussion 请不要花时间/精力来创建答案 @Wilt 的回答中的
我有一个关于重新整理推文文字的问题。任何帮助,将不胜感激。 这是我的数据来源;关于电晕鸣叫: source of data set 我从照片中下载了一个数据集(名为2020年2月1日) 然后,我将过滤
我正在尝试将 hydration 数据插入Google Fit。但是我无法插入数据。 这是我的代码: BuildFitnessClient: private void buildFitnessClie
我有2个实体:User,Article和具有属性的多对多关系,用于描述User与Articles的交互。该属性描述了交互的类型(例如书签...)。 在这种情况下,我需要一个从Article到UserA
我正忙着查看 elasticsearch 以寻找我正在着手的新项目。我目前正在运行 Symfony2.5,带有最新的 FOSElasticaBundle 等等。我正在对 bundle 的性能进行一些基
我有以下 JSON: { "users": [ {"id": "1", "name": "John Doe"}, {"id": "2", "name": "Bi
我有 3 个实体: 1. /** * @ORM\Entity */ class Product { /** * @ORM\Id * @ORM\Column(type="
我正在努力尝试找出如何使用单一表单编辑多个模型。 我有一个名为 Teams 的数据库表和一个与该表关联的学说实体。我创建了一个表单,如下所示: 我的团队现场集: class TeamFieldset
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我是一名优秀的程序员,十分优秀!