PerformanceResourceTiming: firstInterimResponseStart-Eigenschaft

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

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

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

Es gibt keine end-Eigenschaft für firstInterimResponseStart.

Wert

Die Eigenschaft firstInterimResponseStart kann die folgenden Werte haben:

  • Ein DOMHighResTimeStamp unmittelbar nachdem der Browser die ersten vorläufigen Bytes der Antwort vom Server erhält.
  • 0, wenn die Ressource keine vorläufige Antwort gesendet hat.
  • 0, wenn die Ressource eine Cross-Origin-Anfrage ist und kein Timing-Allow-Origin HTTP-Response-Header verwendet wird.

Hinweis: Da Early Hints typischerweise nur bei der Hauptnavigation unterstützt werden, die definitionsgemäß gleich-origin ist, zeigt ein Wert von 0 typischerweise an, dass Early Hints nicht verwendet wurden.

Ein nicht-null-firstInterimResponseStart zeigt an, dass es denselben Wert haben sollte wie requestStart bei unterstützenden Browsern.

Beispiele

Messung der Anforderungszeit

Die Eigenschaften firstInterimResponseStart und requestStart 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;

Im folgenden Beispiel wird ein PerformanceObserver verwendet, um über neue resource-Performance-Einträge zu benachrichtigen, sobald sie in der Performance-Zeitleiste des Browsers aufgezeichnet werden. Die buffered-Option wird verwendet, um Einträge 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 sich zum Zeitpunkt des Aufrufs der Methode in der Performance-Zeitleiste des Browsers befinden.

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

Timing-Informationen für Cross-Origin-Anfragen

Wenn der Wert der Eigenschaft firstInterimResponseStart 0 ist, könnte die Ressource eine Cross-Origin-Anfrage sein. Um das Anzeigen von Timing-Informationen für Cross-Origin-Anfragen zu ermöglichen, muss der Timing-Allow-Origin HTTP-Response-Header gesetzt werden.

Zum Beispiel, um https://developer.mozilla.org zu erlauben, Timing-Ressourcen zu sehen, sollte die Cross-Origin-Resource senden:

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

Spezifikationen

Specification
Resource Timing
# dom-performanceresourcetiming-firstinterimresponsestart

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
firstInterimResponseStart
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.
See implementation notes.

Siehe auch