Document: DOMContentLoaded ã¤ãã³ã
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
DOMContentLoaded ã¤ãã³ãã¯ãHTML ã®ææ¸ãå®å
¨ã«èªã¿è¾¼ã¾ãæ§æè§£æããããã¹ã¦ã®é
å»¶ã¹ã¯ãªããï¼<script defer src="â¦"> ããã³ <script type="module">ï¼ããã¦ã³ãã¼ããããå®è¡ãããã¨ãã«çºçãã¾ããç»åããµããã¬ã¼ã ãéåæã¹ã¯ãªããã®èªã¿è¾¼ã¿ã®å®äºã¯å¾
ã¡ã¾ããã
DOMContentLoaded ã¯ã¹ã¿ã¤ã«ã·ã¼ãã®èªã¿è¾¼ã¿ãå¾
ã¡ã¾ããããé
å»¶ã¹ã¯ãªããã¯ã¹ã¿ã¤ã«ã·ã¼ãã®èªã¿è¾¼ã¿ãå¾
ã¡ã¾ãããDOMContentLoaded ã¤ãã³ãã¯é
å»¶ã¹ã¯ãªããã®å¾ã«ãã¥ã¼ã¤ã³ã°ããã¾ããã¾ããé
å»¶ãéåæã§ãªãã¹ã¯ãªããï¼<script> ãªã©ï¼ã¯ããã§ã«è§£éã§ããã¹ã¿ã¤ã«ã·ã¼ãã®èªã¿è¾¼ã¿ãå¾
ã¡ã¾ãã
å¥ãªã¤ãã³ãã§ãã load ã¯ããã¼ã¸å
¨ä½ãèªã¿è¾¼ã¾ããã¨ãã«ã®ã¿ä½¿ç¨ãã¾ãã load ã DOMContentLoaded ãããé©åã§ããå ´é¢ã§ä½¿ã£ã¦ãã¾ããã¨ããããã誤ãã§ãã
ãã®ã¤ãã³ãã¯ãã£ã³ã»ã«ä¸å¯ã§ãã
æ§æ
ãã®ã¤ãã³ãåã addEventListener() ãªã©ã®ã¡ã½ããã§ä½¿ç¨ããããã¤ãã³ããã³ãã©ã¼ã®ããããã£ãè¨å®ããããã¦ãã ããã
addEventListener("DOMContentLoaded", (event) => {});
ã¤ãã³ãå
ä¸è¬ç㪠Event ã§ãã
ä¾
>åºæ¬çãªä½¿ç¨
document.addEventListener("DOMContentLoaded", (event) => {
console.log("DOM fully loaded and parsed");
});
DOMContentLoaded ã®é å»¶
<script>
document.addEventListener("DOMContentLoaded", (event) => {
console.log("DOM ã¯å®å
¨ã«èªã¿è¾¼ã¾ãè§£éããã¾ãã");
});
for (let i = 0; i < 1_000_000_000; i++);
// ãã®åæã¹ã¯ãªãã㯠DOM ã®æ§æè§£æãé
ãããã®ã§ã
// DOMContentLoaded ã¤ãã³ãã¯ãã®å¾ã§èµ·åãããã¨ã«ãªãã¾ãã
</script>
èªã¿è¾¼ã¿ãå®äºãã¦ãããã©ããã®ãã§ãã¯
DOMContentLoaded ã¯ã¹ã¯ãªããå®è¡ã®æ©ä¼ãããåã«çºçãããã¨ãããããããªã¹ãã¼ã追å ããåã«ãã§ãã¯ããã®ãè³¢æã§ãã
function doSomething() {
console.info("DOM loaded");
}
if (document.readyState === "loading") {
// Loading hasn't finished yet
document.addEventListener("DOMContentLoaded", doSomething);
} else {
// `DOMContentLoaded` has already fired
doSomething();
}
ã¡ã¢:
ããã§ã¯ç«¶åæ¡ä»¶ã¯ããã¾ããã if ãã§ãã¯ã¨ addEventListener() å¼ã³åºãã®éã«ææ¸ãèªã¿è¾¼ã¾ãããã¨ã¯ããå¾ã¾ãããJavaScript ã«ã¯ run-to-completion ã¨ããæå³ã¥ããããã¾ããã¤ã¾ããã¤ãã³ãã«ã¼ãã®ããç¹å®ã®ã¿ã¤ãã³ã°ã§ææ¸ãèªã¿è¾¼ã¾ãã¦ããã¨ãã¦ããæ¬¡ã®ãµã¤ã¯ã«ã¾ã§èªã¿è¾¼ã¾ãããã¨ã¯ãªãããã®æã«ã¯ doSomething ãã³ãã©ã¼ã¯ãã§ã«åãä»ãããã¦ãããçºçãã¾ãã
ã©ã¤ããµã³ãã«
HTML
<div class="controls">
<button id="reload" type="button">åèªã¿è¾¼ã¿</button>
</div>
<div class="event-log">
<label for="eventLog">ã¤ãã³ããã°:</label>
<textarea
readonly
class="event-log-contents"
rows="8"
cols="30"
id="eventLog"></textarea>
</div>
JavaScript
const log = document.querySelector(".event-log-contents");
const reload = document.querySelector("#reload");
reload.addEventListener("click", () => {
log.textContent = "";
setTimeout(() => {
window.location.reload(true);
}, 200);
});
window.addEventListener("load", (event) => {
log.textContent += "load\n";
});
document.addEventListener("readystatechange", (event) => {
log.textContent += `readystate: ${document.readyState}\n`;
});
document.addEventListener("DOMContentLoaded", (event) => {
log.textContent += "DOMContentLoaded\n";
});
çµæ
仿§æ¸
| 仿§æ¸ |
|---|
| HTML > # stop-parsing > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
- é¢é£ã¤ãã³ã:
load,readystatechange,beforeunload,unload