프로그래밍/JS, Node.js

DOMContentLoaded와 jQuery document.ready()의 중요한 차이점

Lou Park 2021. 10. 31. 20:07

포스팅을 보다보면 javascript의 DOMContentLoaded와 jQuery의 ready()가 동일하다고 설명되어있다.

결론부터 말하자면, 동일한 시점에 Trigger되는 것은 맞지만 이들의 작동방식에는 중요한 차이점이 있다.

document.addEventListeners('DOMContentLoaded', function () {})
$(document).ready(function () {})

 

 

 

DOM이 준비되어 조작해도 되는 상태가 되면, ready()나 DOMContentLoaded가 호출 된다.

시각적으로 표현하자면..이렇다.

하지만 DOMContentLoaded의 경우 addListener를 한 시점이 이미 이벤트가 일어난 시점(DOM이 준비되어버린)인 경우에는 호출되지 않는다.

 

반면에, ready()의 경우에는 이미 ready()를 호출하기 이전에 DOMContentLoaded 이벤트가 일어났더라도, ready안의 function이 호출된다.

 

API 통신을 통해 동적으로 집어넣은 Script에 DOMContentLoaded가 작동안되는 이유는 바로 이것이다!

 


참고자료

https://api.jquery.com/ready/