domInteractive与Time to Interactive有什么区别



Google提供了许多polyfill库,用于测量和跟踪分析平台上的首次输入延迟(FID)和交互时间(TTI)。然而,这个指标并不是GA的标准。

然而,domInteractive是一个可以通过GA开箱即用跟踪的指标。

有什么区别?对于相互竞争的交互指标,我发现的唯一解释是一篇模糊的论坛帖子,解释TTI可能会对交互延迟提供更复杂的看法,但没有太多细节。

如果我担心输入延迟会影响转换,我会更好地跟踪用户的TTI吗?还是我可以坚持使用domInteractive?

我的理解如下:

互动时间(TTI)是指网站在视觉上可用且引人入胜的时间。例如,当用户可以在UI上点击,并且网站正常工作时。理想情况下,我们希望所有体验都能尽快进行交互。TTI差的网站的例子是用户可以在实际发生任何事情之前积极参与UI很长一段时间的网站。TTI差是由过多(主线程)JavaScript引起的,这会对可见UI元素的交互造成延迟。这里就是一个例子。对于移动空间来说,这是一个特别重要的衡量标准,因为每个人都没有一部好手机(因此分析加载网站所需的JavaScript需要更长的时间),以及由于不同网络速度而产生的差异:即WI-FI、3G、4G

domInteractive但是,当页面的主要内容可见并且出现了有意义的绘制时。在这个阶段,用户可以直观地看到网页和表示网站DOM的相应UI元素。

首次输入延迟(FID)是对响应用户事件所用时间的度量例如,用户单击按钮后,按钮的事件处理程序接管并响应需要多长时间。

据我所知,FID和TTI目前是实验性指标,因此默认情况下它们可能不会被纳入谷歌分析。至于你的问题:"如果我担心输入延迟会影响转换,我最好跟踪用户的TTI吗?还是我可以坚持使用domInteractive?"如果你担心输入延迟影响转换,你实际上想跟踪FID。TTI仍然是一个非常有用的跟踪指标,因为它衡量你的网站何时作为一个整体是交互式的,TTI和FID都将比domInteractive提供更多的价值。

如果你仍然感兴趣,请查看Addy Osmani关于JavaScript成本的解释。他出色地解释了我们在JavaScript方面面临的性能问题,并谈到了TTI和FID。

干杯

根据这个链接,domInteractive是"当解析器完成对主文档的工作时"。交互时间-是指所有页面脚本(包括库,例如Angular和您的)完成初始化,页面不冻结,用户可以开始与之交互的时间。

不得不深入研究规范,但我想我找到了我想要的:

DOMContentLoaded事件在转换为"交互式"之后,但在转换到"完成"之前,即除了异步脚本元素之外的所有子资源都已加载的点处激发。

基本上,domInteractive将而不是反映仍在加载的异步脚本,这就是为什么您的TTI度量可能变化如此之大的原因。

最新更新