Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Document : propriété prerendering

Limited availability

Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.

Expérimental: Il s'agit d'une technologie expérimentale.
Vérifiez attentivement le tableau de compatibilité des navigateurs avant de l'utiliser en production.

La propriété en lecture seule prerendering de l'interface Document retourne true si le document est actuellement en cours de pré-rendu, tel qu'initié via l'API Speculation Rules.

Valeur

Un booléen. Retourne true si le document est actuellement en cours de pré-rendu, sinon false. false sera retourné pour les documents dont le pré-rendu est terminé, ainsi que pour ceux qui n'ont pas été pré-rendus.

Exemples

Pour exécuter une action pendant que la page est en pré-rendu, vous pouvez vérifier la propriété prerendering. Vous pouvez par exemple lancer une analyse statistique :

js
if (document.prerendering) {
  analytics.sendInfo("arrivé jusqu'ici pendant le pré-rendu !");
}

Lorsqu'un document pré-rendu est activé, PerformanceNavigationTiming.activationStart est défini sur une valeur DOMHighResTimeStamp représentant le temps écoulé entre le début du pré-rendu et l'activation effective du document. La fonction suivante permet de vérifier le pré-rendu et les pages pré-rendues :

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

Lorsque la page pré-rendue est activée par la consultation de l'utilisateur·ice, l'évènement prerenderingchange est déclenché. Cela peut servir à activer des activités qui auparavant démarraient par défaut au chargement de la page, mais que vous souhaitez différer jusqu'à ce que la page soit effectivement consultée. Le code suivant met en place un écouteur d'évènement pour exécuter une fonction une fois le pré-rendu terminé, sur une page pré-rendue, ou l'exécute immédiatement sur une page qui n'est pas pré-rendue :

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

Note : Voir la page d'accueil de l'API Speculation Rules et en particulier la section Conditions de chargement spéculatif non sûr pour plus d'informations sur les types d'activités que vous pourriez vouloir différer.

Pour mesurer la fréquence d'activation d'un pré-rendu, combinez les trois API : document.prerendering pour détecter les cas où la page est actuellement en pré-rendu, prerenderingchange pour surveiller les activations dans ce cas, et activationStart pour vérifier les cas où la page a été pré-rendue dans le passé.

js
if (document.prerendering) {
  document.addEventListener(
    "prerenderingchange",
    () => {
      console.log("Pré-rendu activé après l'exécution de ce script");
    },
    { once: true },
  );
} else if (performance.getEntriesByType("navigation")[0]?.activationStart > 0) {
  console.log("Pré-rendu activé avant l'exécution de ce script");
} else {
  console.log("Ce chargement de page ne s'est pas fait via un pré-rendu");
}

Spécifications

Specification
Prerendering Revamped
# dom-document-prerendering

Compatibilité des navigateurs

Voir aussi