PerformanceEventTiming: interactionId 属性

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

只读的 interactionId 属性是 PerformanceEventTiming 接口的一部分,它返回一个唯一标识用户交互的 ID,该交互触发了一系列相关的事件。

一个数字。对于未计算交互 ID 的事件类型,值为 0。

描述

当用户与网页交互时,一次用户交互(例如点击)通常会触发一系列事件,如 pointerdownpointerupclick 事件。为了衡量这一系列事件的延迟,这些事件会共享同一个 interactionId

interactionId 仅为属于用户交互的以下事件类型计算。否则,它为 0

事件类型 用户交互
pointerdownpointerupclick 点击 / 轻触 / 拖动
keydownkeyup 按键

interactionId 也用于计算 Interaction to next paint(交互到下一次绘制)指标,该指标有助于分析页面生命周期内用户交互的响应能力。

示例

使用 interactionId

以下示例收集与一次交互相关的所有事件的持续时间。然后,可以使用 eventLatencies 地图来查找一次用户交互事件的最大持续时间,例如。

js
// The key is the interaction ID.
let eventLatencies = {};

const observer = new PerformanceObserver((list) => {
  list.getEntries().forEach((entry) => {
    if (entry.interactionId > 0) {
      const interactionId = entry.interactionId;
      if (!eventLatencies.has(interactionId)) {
        eventLatencies[interactionId] = [];
      }
      eventLatencies[interactionId].push(entry.duration);
    }
  });
});

observer.observe({ type: "event", buffered: true });

// Log events with maximum event duration for a user interaction
Object.entries(eventLatencies).forEach(([k, v]) => {
  console.log(Math.max(...v));
});

规范

规范
事件计时 API
# dom-performanceeventtiming-interactionid

浏览器兼容性