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

View in English Always switch to English

PerformanceResourceTiming: fetchStart-Eigenschaft

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2017 browserübergreifend verfügbar.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die schreibgeschützte Eigenschaft fetchStart gibt einen Zeitstempel unmittelbar bevor der Browser beginnt, die Ressource abzurufen, zurück.

Wert

Ein DOMHighResTimeStamp unmittelbar bevor der Browser beginnt, die Ressource abzurufen.

Beschreibung

Wenn keine HTTP-Weiterleitungen vorliegen oder deren Zeitinformationen nicht offengelegt werden, entspricht dieser Wert PerformanceEntry.startTime. Andernfalls kann dieser Wert später als startTime liegen.

Anders als viele andere Eigenschaften von PerformanceResourceTiming ist die Eigenschaft fetchStart bei Cross-Origin-Anfragen auch ohne den HTTP-Antwortheader Timing-Allow-Origin verfügbar. Ohne diesen Header entspricht fetchStart jedoch startTime und gibt daher nicht preis, wie viel Zeit für Weiterleitungen aufgewendet wurde. Eine Ausnahme bilden Cross-Origin-<iframe>-Elemente, bei denen fetchStart den Wert 0 hat (siehe Cross-Origin-iframes).

Beispiele

Abrufdauer messen (ohne Weiterleitungen)

Mit den Eigenschaften fetchStart und responseEnd lässt sich die Gesamtdauer für den Abruf der endgültigen Ressource ohne Weiterleitungen messen. Wenn Sie Weiterleitungen einbeziehen möchten, finden Sie die Gesamtdauer des Abrufs in der Eigenschaft duration.

js
const timeToFetch = entry.responseEnd - entry.fetchStart;

Beispiel mit einem PerformanceObserver, der über neue resource-Performance-Einträge benachrichtigt, sobald diese in der Performance-Zeitleiste des Browsers erfasst werden. Verwenden Sie die Option buffered, um auf Einträge zuzugreifen, die vor der Erstellung des Observers erfasst wurden.

js
const observer = new PerformanceObserver((list) => {
  list.getEntries().forEach((entry) => {
    const timeToFetch = entry.responseEnd - entry.fetchStart;
    if (timeToFetch > 0) {
      console.log(`${entry.name}: Time to fetch: ${timeToFetch}ms`);
    }
  });
});

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

Beispiel mit Performance.getEntriesByType(), das nur die resource-Performance-Einträge anzeigt, die zum Zeitpunkt des Methodenaufrufs in der Performance-Zeitleiste des Browsers vorhanden sind:

js
const resources = performance.getEntriesByType("resource");
resources.forEach((entry) => {
  const timeToFetch = entry.responseEnd - entry.fetchStart;
  if (timeToFetch > 0) {
    console.log(`${entry.name}: Time to fetch: ${timeToFetch}ms`);
  }
});

Spezifikationen

Spezifikation
Resource Timing
# dom-performanceresourcetiming-fetchstart

Browser-Kompatibilität

Siehe auch