PerformanceResourceTiming: firstInterimResponseStart-Eigenschaft

Hinweis: Dieses Feature ist verfügbar in Web Workers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Die firstInterimResponseStart schreibgeschützte Eigenschaft gibt einen Zeitstempel unmittelbar nachdem der Browser das erste Byte der vorläufigen 1xx-Antwort (z.B. 100 Continue oder 103 Early Hints) vom Server empfängt, zurück.

Es gibt keine end-Eigenschaft für firstInterimResponseStart.

Wert

Die firstInterimResponseStart-Eigenschaft kann folgende Werte haben:

  • Ein DOMHighResTimeStamp unmittelbar nachdem der Browser die ersten vorläufigen Bytes der Antwort vom Server empfängt.
  • 0, wenn die Ressource keine vorläufige Antwort gesendet hat
  • 0, wenn es sich bei der Ressource um eine Cross-Origin-Anfrage handelt und kein Timing-Allow-Origin HTTP-Response-Header verwendet wird.

Hinweis: Da Early Hints typischerweise nur bei der Hauptnavigationsanfrage unterstützt werden, die definitionsgemäß same-origin ist, weist 0 typischerweise darauf hin, dass Early Hints nicht verwendet wurden.

Beispiele

Messung der Anforderungszeit

Die firstInterimResponseStart- und requestStart-Eigenschaften können verwendet werden, um zu messen, wie lange es dauert, bis der Browser eine vorläufige Antwort nach dem Senden der Anfrage erhält.

js
const request = entry.firstInterimResponseStart - entry.requestStart;

Das folgende Beispiel verwendet einen PerformanceObserver, um über neue resource-Performance-Einträge zu informieren, sobald sie in der Leistungstimeline des Browsers aufgezeichnet werden. Die Option buffered wird verwendet, um auf Einträge von vor der Erstellung des Observers zuzugreifen.

js
const observer = new PerformanceObserver((list) => {
  list.getEntries().forEach((entry) => {
    const request = entry.firstInterimResponseStart - entry.requestStart;
    if (request > 0) {
      console.log(`${entry.name}: Interim response time: ${request}ms`);
    }
  });
});

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

Das folgende Beispiel verwendet Performance.getEntriesByType(), das nur resource-Performance-Einträge anzeigt, die zum Zeitpunkt des Aufrufs der Methode in der Leistungstimeline des Browsers vorhanden sind.

js
const resources = performance.getEntriesByType("resource");
resources.forEach((entry) => {
  const request = entry.firstInterimResponseStart - entry.requestStart;
  if (request > 0) {
    console.log(`${entry.name}: Interim response time: ${request}ms`);
  }
});

Cross-Origin-Zeiteninformationen

Wenn der Wert der firstInterimResponseStart-Eigenschaft 0 ist, könnte die Ressource eine Cross-Origin-Anfrage sein. Um Cross-Origin-Zeiteninformationen sehen zu können, muss der Timing-Allow-Origin HTTP-Response-Header gesetzt werden.

Zum Beispiel sollte die Cross-Origin-Ressource Folgendes senden, um https://developer.mozilla.org den Zugriff auf Zeiteninformationen zu erlauben:

http
Timing-Allow-Origin: https://developer.mozilla.org

Spezifikationen

Specification
Resource Timing
# dom-performanceresourcetiming-firstinterimresponsestart

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch