December 20, 2021

HTML 문서의 생명주기엔 다음과 같은 3가지 주요 이벤트가 관여합니다.

세 이벤트는 다음과 같은 상황에서 활용할 수 있습니다.

DOMContentLoaded

DOMContentLoaded 이벤트는 document 객체에서 발생합니다.

따라서 이 이벤트를 다루려면 addEventListener를 사용해야 합니다.

document.addEventListener("DOMContentLoaded", ready);
// "document.onDOMContentLoaded = ..."는 동작하지 않습니다.

예시:

<script>
  function ready() {
    alert('DOM이 준비되었습니다!');

    // 이미지가 로드되지 않은 상태이기 때문에 사이즈는 0x0입니다.
    alert(`이미지 사이즈: ${img.offsetWidth}x${img.offsetHeight}`);
  }

  *document.addEventListener("DOMContentLoaded", ready);*</script><img id="img" src="<https://en.js.cx/clipart/train.gif?speed=1&cache=0>">

위 예시에서 DOMContentLoaded 핸들러는 문서가 로드되었을 때 실행됩니다. 따라서 핸들러 아래쪽에 위치한 <img>뿐만 아니라 모든 요소에 접근할 수 있습니다.

그렇지만 이미지가 로드되는 것은 기다리지 않기 때문에 alert 창엔 이미지 사이즈가 0이라고 뜹니다.