Document: prerendering ããããã£
å©ç¨å¯è½æ§ã¯éå®ç
ãã®æ©è½ã¯ãã¼ã¹ã©ã¤ã³ã§ã¯ããã¾ãããæãåºã使ç¨ããã¦ãããã©ã¦ã¶ã¼ã®ä¸é¨ã§åä½ãã¾ããã
Want more browser support for this feature? Tell us why.
Experimental: ããã¯å®é¨çãªæ©è½ã§ãã
æ¬çªã§ä½¿ç¨ããåã«ãã©ã¦ã¶ã¼äºææ§ä¸è¦§è¡¨ããã§ãã¯ãã¦ãã ããã
prerendering 㯠Document ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®èªã¿åãå°ç¨ããããã£ã§ããã®ææ¸ãç¾å¨ææ©ã«ã¼ã« API ã«ãã£ã¦éå§ãããäºåã¬ã³ããªã³ã°ã®éç¨ã«ããå ´åã« true ãè¿ãã¾ãã
å¤
è«çå¤ãææ¸ãç¾å¨äºåã¬ã³ããªã³ã°ä¸ã§ããã° true ãè¿ããããã§ãªããã° false ãè¿ãã¾ããäºåã¬ã³ããªã³ã°ãå®äºããææ¸ããäºåã¬ã³ããªã³ã°ããã¦ããªãææ¸ã«å¯¾ãã¦ã¯ false ãè¿ãã¾ãã
ä¾
ãã¼ã¸ãäºåã¬ã³ããªã³ã°ããã¦ããéã«ã¢ã¯ãã£ããã£ãå®è¡ããã«ã¯ãprerendering ããããã£ã調ã¹ã¾ããä¾ãã°ãã¢ããªãã£ã¯ã¹ãå®è¡ãããã¨ãã§ãã¾ãã
if (document.prerendering) {
analytics.sendInfo("got this far during prerendering!");
}
äºåã¬ã³ããªã³ã°ãããææ¸ãã¢ã¯ãã£ãã«ãªãã¨ãPerformanceNavigationTiming.activationStart ã«ã¯ãäºåã¬ã³ããªã³ã°ãéå§ããã¦ããå®éã«ææ¸ãã¢ã¯ãã£ãã«ãªãã¾ã§ã®æéã表ã DOMHighResTimeStamp å¤ãè¨å®ããã¾ãã以ä¸ã®é¢æ°ã¯ãäºåã¬ã³ããªã³ã°ãè¡ããã¦ãããã¼ã¸ãå®äºãããã¼ã¸ã調ã¹ããã¨ãã§ãã¾ãã
function pagePrerendered() {
return (
document.prerendering ||
performance.getEntriesByType("navigation")[0]?.activationStart > 0
);
}
äºåã¬ã³ããªã³ã°ããããã¼ã¸ããã¼ã¸ãé²è¦§ãã¦ããã¦ã¼ã¶ã¼ã«ãã£ã¦ã¢ã¯ãã£ãåãããã¨ãprerenderingchange ã¤ãã³ããçºçãã¾ããããã¯ãååã¾ã§ã¯ãã¼ã¸èªã¿è¾¼ã¿æã«æ¢å®ã§éå§ããã¦ããã¢ã¯ãã£ããã£ãããã¼ã¸ãã¦ã¼ã¶ã¼ã«ãã£ã¦å®éã«è¡¨ç¤ºãããã¾ã§é
ããããå ´åã«ä½¿ç¨ãããã¨ãã§ãã¾ãã以ä¸ã®ã³ã¼ãã¯ãäºåã¬ã³ããªã³ã°ããããã¼ã¸ã§ãäºåã¬ã³ããªã³ã°ãå®äºããã颿°ãå®è¡ãããã¾ãã¯äºåã¬ã³ããªã³ã°ããã¦ããªããã¼ã¸ã§ããã«é¢æ°ãå®è¡ããã¤ãã³ããªã¹ãã¼ãè¨å®ãã¾ãã
if (document.prerendering) {
document.addEventListener("prerenderingchange", initAnalytics, {
once: true,
});
} else {
initAnalytics();
}
ã¡ã¢: ææ©ã«ã¼ã« API ã©ã³ãã£ã³ã°ãã¼ã¸ãç¹ã«å®å ¨ã§ãªãææ©çèªã¿è¾¼ã¿æ¡ä»¶ã®ç¯ã§ãé å»¶ããããæ´»åã®ç¨®é¡ã«é¢ãã詳細æ å ±ãåç §ãã¦ãã ããã
äºåã¬ã³ããªã³ã°ãã¢ã¯ãã£ãã¼ã·ã§ã³ãããé »åº¦ãæ¸¬å®ããã«ã¯ã次㮠3 ã¤ã® API ããã¹ã¦çµã¿åããã¾ãã document.prerendering ã¯ãã¼ã¸ãç¾å¨äºåã¬ã³ããªã³ã°ä¸ã§ããããæ¤åºããprerenderingchange ã¯äºåã¬ã³ããªã³ã°ãããå¾ã«ã¢ã¯ãã£ãã¼ããããããç£è¦ããactivationStart ã¯ãã¼ã¸ãéå»ã«äºåã¬ã³ããªã³ã°ããããããã§ãã¯ãã¾ãã
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");
}
仿§æ¸
| 仿§æ¸ |
|---|
| Prerendering Revamped > # dom-document-prerendering > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
- ææ©ã«ã¼ã« API
prerenderingchangeã¤ãã³ãPerformanceNavigationTiming.activationStartããããã£