PerformanceEventTiming: interactionId 属性
只读的 interactionId 属性是 PerformanceEventTiming 接口的一部分,它返回一个唯一标识用户交互的 ID,该交互触发了一系列相关的事件。
值
一个数字。对于未计算交互 ID 的事件类型,值为 0。
描述
当用户与网页交互时,一次用户交互(例如点击)通常会触发一系列事件,如 pointerdown、pointerup 和 click 事件。为了衡量这一系列事件的延迟,这些事件会共享同一个 interactionId。
interactionId 仅为属于用户交互的以下事件类型计算。否则,它为 0。
| 事件类型 | 用户交互 |
|---|---|
pointerdown、pointerup、click |
点击 / 轻触 / 拖动 |
keydown、keyup |
按键 |
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 |
浏览器兼容性
加载中…