Dokument: prerendering-Eigenschaft
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
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 prerendering
des Document
Interface gibt true
zurück, wenn das Dokument derzeit im Prozess des Prerendings ist, wie über die Speculation Rules API initiiert.
Wert
Ein boolescher Wert. Gibt true
zurück, wenn das Dokument derzeit im Prozess des Prerendings ist, und false
, wenn es dies nicht ist. false
wird für Dokumente zurückgegeben, die das Prerendering abgeschlossen haben, und für Dokumente, die nicht prerendert wurden.
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 prerendertes Dokument aktiviert wird, wird PerformanceNavigationTiming.activationStart
auf einen DOMHighResTimeStamp
Wert gesetzt, der die Zeit zwischen dem Start des Prerendings und der tatsächlichen Aktivierung des Dokuments darstellt. Die folgende Funktion kann sowohl für prerendernde als auch für prerendert fortgeschrittene Seiten überprüfen:
function pagePrerendered() {
return (
document.prerendering ||
performance.getEntriesByType("navigation")[0]?.activationStart > 0
);
}
Wenn die prerendert-Seite durch das Betrachten durch den Benutzer aktiviert wird, wird das prerenderingchange
Ereignis ausgelöst. Dies kann verwendet werden, um Aktivitäten zu aktivieren, die zuvor standardmäßig beim Laden der Seite gestartet würden, die Sie jedoch verzögern möchten, bis die Seite tatsächlich vom Benutzer betrachtet wird. Der folgende Code richtet einen Ereignis-Listener ein, um eine Funktion auszuführen, sobald das Prerendering beendet ist, auf einer prerendert-Seite, oder führt sie sofort auf einer nicht prerendert-Seite aus:
if (document.prerendering) {
document.addEventListener("prerenderingchange", initAnalytics, {
once: true,
});
} else {
initAnalytics();
}
Hinweis: Weitere Informationen darüber, welche Art von Aktivitäten Sie möglicherweise verzögern möchten, finden Sie auf der Speculation Rules API Startseite 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 auf Aktivierungen in diesem Fall zu achten, und activationStart
, um Fälle zu überprüfen, in denen die Seite in der Vergangenheit prerendert 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
Loading…
Siehe auch
- Speculation Rules API
prerenderingchange
EreignisPerformanceNavigationTiming.activationStart
Eigenschaft