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:
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:
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:
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.
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
- Speculation Rules API
prerenderingchange
-EreignisPerformanceNavigationTiming.activationStart
-Eigenschaft