Dokument: prerendering-Eigenschaft

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

Die prerendering-Eigenschaft des Document-Interfaces ist schreibgeschützt und gibt true zurück, wenn das Dokument derzeit im Prozess des Prerenderings ist, wie über die Speculation Rules API initiiert.

Wert

Ein boolescher Wert. Gibt true zurück, wenn sich das Dokument derzeit im Prozess des Prerenderings befindet, und false, wenn nicht. Für Dokumente, die das Prerendering abgeschlossen haben, und Dokumente, die nicht prerendered wurden, wird false zurückgegeben.

Beispiele

Um eine Aktivität auszuführen, während die Seite prerendert wird, können Sie die prerendering-Eigenschaft überprüfen. Sie könnten zum Beispiel einige Analysen durchführen:

js
if (document.prerendering) {
  analytics.sendInfo("got this far during prerendering!");
}

Wenn ein prerendered Dokument aktiviert wird, wird PerformanceNavigationTiming.activationStart auf einen DOMHighResTimeStamp Wert gesetzt, der die Zeit zwischen dem Start des Prerenderings und der tatsächlichen Aktivierung des Dokuments darstellt. Die folgende Funktion kann sowohl für prerendering- als auch für prerendered-Seiten prüfen:

js
function pagePrerendered() {
  return (
    document.prerendering ||
    performance.getEntriesByType("navigation")[0]?.activationStart > 0
  );
}

Wenn die prerendered Seite vom Benutzer durch Ansicht der Seite aktiviert wird, wird das prerenderingchange-Ereignis ausgelöst. Dies kann verwendet werden, um Aktivitäten zu ermöglichen, die zuvor standardmäßig beim Laden der Seite gestartet würden, die Sie aber verzögern möchten, bis die Seite tatsächlich vom Benutzer angesehen wird. Der folgende Code richtet einen Ereignis-Listener ein, der eine Funktion ausführt, sobald das Prerendering abgeschlossen ist, auf einer prerendered-Seite, oder sie führt diese sofort auf einer nicht-prerendered-Seite aus:

js
if (document.prerendering) {
  document.addEventListener("prerenderingchange", initAnalytics, {
    once: true,
  });
} else {
  initAnalytics();
}

Hinweis: Weitere Informationen zu den Arten von Aktivitäten, die Sie möglicherweise verzögern möchten, finden Sie auf der Speculation Rules API Hauptseite und insbesondere im Abschnitt Unsichere spekulative Ladebedingungen.

Um zu messen, wie oft ein Prerender aktiviert wird, kombinieren Sie alle drei APIs: document.prerendering, um Fälle zu erkennen, in denen die Seite derzeit prerendert wird, prerenderingchange, um Aktivierungen in diesem Fall zu beobachten, und activationStart, um Fälle zu prüfen, in denen die Seite in der Vergangenheit prerendered wurde.

js
if (document.prerendering) {
  document.addEventListener(
    "prerenderingchange",
    () => {
      console.log("Prerender activated after this script ran");
    },
    { once: true },
  );
} else if (performance.getEntriesByType("navigation")[0]?.activationStart > 0) {
  console.log("Prerender activated before this script ran");
} else {
  console.log("This page load was not via prerendering");
}

Spezifikationen

Specification
Prerendering Revamped
# dom-document-prerendering

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch