Chrome 的 Lighthouse 工具和 WebPageTest 提供“交互时间”(TTI)指标。
Google 提供了 TTI 的最小定义:
交互时间被定义为布局稳定、关键网络字体可见并且主线程足以处理用户输入的时间点。
请注意,此指标处于早期阶段,可能会发生变化。
WebPageTest将它们分为“首次交互时间”和“持续交互时间”:
是时候进行一致的交互式计算了
- 开始在第一个内容绘制或加载的 DOM 内容中的较大者处寻找 TTI
- 查找第一个交互窗口,其中有 5 秒的连续时间段完全包含在交互窗口中,并且不超过 2 个进行中的请求
- TTI 是从步骤 2 开始的交互式窗口或搜索起点,以较晚者为准
第一次交互式计算
- 开始在第一个内容绘制或加载的 DOM 内容中的较大者处寻找 TTI
- 查找第一个交互式窗口,其中有 5 秒的连续时间段完全包含在交互式窗口中,无论进行中的请求数量如何
- TTI 是从第 2 步开始的交互式窗口的起点或搜索起点,以较晚者为准
我想在客户端计算 WebPageTest 的两个不同 TTI 指标并将它们发送回 API(用于RUM目的)。
当前的 JavaScript API 是否可以进行这样的计算?如果是这样,怎么做?
更新:
我还没有找到令人满意的客户端解决方案,但我找到了更深入的 TTI 定义。