PerformanceEventTiming: interactionId-Eigenschaft
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die schreibgeschützte interactionId-Eigenschaft der PerformanceEventTiming-Schnittstelle gibt eine ID zurück, die eine Benutzerinteraktion eindeutig identifiziert, welche eine Reihe von zugehörigen Ereignissen ausgelöst hat.
Wert
Eine Zahl. Für Ereignistypen, bei denen keine Interaktions-ID berechnet wird, ist der Wert 0.
Beschreibung
Wenn ein Benutzer mit einer Webseite interagiert, löst eine Benutzerinteraktion (zum Beispiel ein Klick) in der Regel eine Reihe von Ereignissen aus, wie pointerdown, pointerup und click-Ereignisse. Um die Latenz dieser Ereignisreihe zu messen, teilen die Ereignisse die gleiche interactionId.
Eine interactionId wird nur für die folgenden Ereignistypen berechnet, die zu einer Benutzerinteraktion gehören. Andernfalls ist sie 0.
| Ereignistypen | Benutzerinteraktion |
|---|---|
pointerdown, pointerup, click |
klicken / tippen / ziehen |
keydown, keyup |
Tastendruck |
Die interactionId wird auch benötigt, um die Metrik Interaction to next paint zu berechnen, die hilft, die Reaktionsfähigkeit auf Benutzerinteraktionen über die Lebensdauer einer Seite zu analysieren.
Beispiele
>Verwendung von interactionId
Das folgende Beispiel sammelt Ereignisdauer für alle Ereignisse, die einer Interaktion entsprechen. Die eventLatencies-Map kann dann verwendet werden, um Ereignisse mit maximaler Dauer für eine Benutzerinteraktion zu finden, zum Beispiel.
// 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));
});
Spezifikationen
| Specification |
|---|
| Event Timing API> # dom-performanceeventtiming-interactionid> |
Browser-Kompatibilität
Loading…