Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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.

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));
});

Spezifikationen

Specification
Event Timing API
# dom-performanceeventtiming-interactionid

Browser-Kompatibilität