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.
Nicht standardisiert: Diese Funktion ist nicht standardisiert. Wir raten davon ab, nicht-standardisierte Funktionen auf produktiven Webseiten zu verwenden, da sie nur von bestimmten Browsern unterstützt werden und sich in Zukunft ändern oder entfernt werden können. Unter Umständen kann sie jedoch eine geeignete Option sein, wenn es keine standardisierte Alternative gibt.
Die prerendering
schreibgeschützte Eigenschaft des Document
-Interfaces gibt true
zurück, wenn das Dokument derzeit im Prozess des Vorabladens (prerendering) ist, wie über die Speculation Rules API initiiert.
Wert
Ein Boolean. Gibt true
zurück, wenn das Dokument derzeit im Prozess des Vorabladens ist, und false
, wenn es nicht der Fall ist. false
wird für Dokumente zurückgegeben, die das Vorabladen abgeschlossen haben, und für Dokumente, die nicht vorabgeladen wurden.
Beispiele
Um eine Aktivität während des Vorabladens der Seite auszuführen, können Sie die prerendering
-Eigenschaft überprüfen. Sie könnten beispielsweise einige Analysen durchführen:
if (document.prerendering) {
analytics.sendInfo("got this far during prerendering!");
}
Wenn ein vorabgeladenes Dokument aktiviert wird, wird PerformanceNavigationTiming.activationStart
auf einen DOMHighResTimeStamp
-Wert gesetzt, der die Zeit zwischen dem Start des Vorabladens und der tatsächlichen Aktivierung des Dokuments darstellt. Die folgende Funktion kann sowohl für vorabladende als auch für vorabgeladene Seiten prüfen:
function pagePrerendered() {
return (
document.prerendering ||
performance.getEntriesByType("navigation")[0]?.activationStart > 0
);
}
Wenn die vorabgeladene Seite durch die Betrachtung der Seite 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 Vorabladen auf einer vorabgeladenen Seite abgeschlossen ist oder diese sofort auf einer nicht vorabgeladenen Seite auszuführen:
if (document.prerendering) {
document.addEventListener("prerenderingchange", initAnalytics, {
once: true,
});
} else {
initAnalytics();
}
Hinweis: Siehe die Speculation Rules API Übersichtsseite und insbesondere den Abschnitt Unsichere spekulative Ladebedingungen für weitere Informationen zu den Arten von Aktivitäten, die Sie möglicherweise verzögern möchten.
Um zu messen, wie oft ein Vorabladen aktiviert wird, kombinieren Sie alle drei APIs: document.prerendering
, um Fälle zu erkennen, in denen die Seite derzeit vorabgeladen wird, prerenderingchange
, um in diesem Fall auf Aktivierungen zu achten, und activationStart
, um Fälle zu überprüfen, in denen die Seite in der Vergangenheit vorabgeladen 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> # eventdef-document-prerenderingchange> |
Prerendering Revamped> # dom-document-onprerenderingchange> |
Browser-Kompatibilität
Loading…
Siehe auch
- Speculation Rules API
prerenderingchange
EreignisPerformanceNavigationTiming.activationStart
Eigenschaft