본문 바로가기
junior developer :)/JS_JavaScript

css Link를 <head>에 선언하고 js script를 <body>에 선언하는 이유(JS)

by ㅁ윤슬ㅁ 2022. 9. 20.
728x90
반응형

일반적으로 html에서 js와 css를 import 할 때 css의 <link>는 <head>에, js의 script는 <body>에 선언하는데, 그 이유는 무엇일까?

 

css의 link를 head에 선언하는 이유

이는 최적화된 웹사이트를 구축하기 위해 필요하다.

html과 css는 시각적인 부분을 담당하기 떄문에 페이지가 처음 로드되면 HTML과 CSS(head 안에 있는 경우)가 함께 파싱된다.

HTML은 DOM(Document Object Model)을 만들고 CSS는 *CSSOM(CSS Object Model)을 만든다

 

stylesheet가 body에 선언되게 된다면?

HTML이 먼저 렌더링 되고 그 다음에 CSS스타일이 적용된다. 즉, 2번 렌더링 되기 때문에 비효율적이다

 

js script를 body 끝에 선언하는 이유

HTML이 파싱될 때, script태그를 만나면 그 안에 있는 JS의 처리가 끝날 때까지 다른 HTML의 해석을 멈춘다. 

그렇기 때문에 가장 무거운 JS를 맨 뒤에 선언해서 미완성된 화면이 오랫동안 지속되지 않도록 한다.

또한 DOM에서 원하는 HTML요소를 불러오지 못하는 오류가 생길 수 있기에 JS를 body맨 끝에 선언한다.


* CSSOM : CSS객체 모델의 DOM이 CSSOM이다. 

즉, HTML대신 CSS에 대해 DOM프로세스를 진행하고, CSSOM도 트리구조를 갖는다

 

* DOM은 무엇인가?


참고

https://zereight.tistory.com/772

https://www.hackinbits.com/interview-questions/html/why-link-tags-should-be-placed-inside-head-tag-in-html

https://www.hackinbits.com/interview-questions/html/why-script-tags-should-be-placed-at-the-end-of-body-tag

728x90
반응형