PerformanceEventTiming:interactionId 属性

实验性: 这是一个 实验性技术
在生产环境中使用之前,请仔细查看 浏览器兼容性表

只读 interactionId 属性返回一个 ID,该 ID 唯一标识触发一系列关联事件的用户交互。

描述

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

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

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

数字。

示例

使用 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

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。