본문 바로가기
엘리스 AI 트랙 4기/Frontend CS Study

[HTML] script tag attributes

by _sweep 2022. 2. 12.

취준생이라면 알면 좋을 프론트엔드 관련 지식들 자료를 보고 정리한 내용입니다.

 

 <script>

<script>는 데이터와 실행 가능한 코드를 문서에 포함할 때 사용하며 보통 JS 코드와 함께 사용한다.

 

<script src="javascript.js"></script>
<script>
  alert("Hello World!");
</script>

 

위와 같이 외부 스크립트를 가져오거나 <script> 태그 내부에 인라인 스크립트를 작성할 수 있다.

 

 <script async>

<script async>는 스크립트가 나머지 페이지와는 비동기적으로 실행됨을 나타내며 브라우저가 페이지를 파싱하는 동안에도 스크립트가 사용 가능해지면 즉시 실행함을 명시한다.

 

<script src="/examples/scripts/script_async.js" async></script>

 

async 속성은 boolean 속성으로 명시하지 않으면 false 값을 가지게 되고 명시하면 true 값을 가진다.

이 속성은 <script> 요소가 외부 스크립트를 참조하는 경우에만 사용할 수 있어 src 속성이 반드시 필요하다.

 

 

 <script defer>

<script defer>는 페이지가 모두 로드된 이후에 해당 외부 스크립트가 실행됨을 명시한다.

 

<script src="/examples/scripts/script_src.js" defer></script>

 

defer 속성은 async 속성과 동일하게 boolean 속성으로 명시하지 않으면 false 값을 가지게 되고 명시하면 true 값을 가진다.

또한 <script> 요소가 외부 스크립트를 참조하는 경우에만 사용할 수 있어 src 속성이 반드시 필요하다.

 

 

<script> vs <script async> vs <script defer>

 

<script>   HTML 파싱이 중단되고 즉시 스크립트가 로드된다.
  로드된 스크립트의 실행이 종료되면 파싱이 재개된다.
<script async>   HTML 파싱과 병렬적으로(비동기적으로) 스크립트가 로드된다.
  파싱하는 동안에도 스크립트 실행이 가능하며 스크립트를 실행할 때는 파싱이 중단된다.
  Google Analytics와 같이 다른 스크립트가 의존하지 않는 독자적인 스크립트를 로드할 때 적합하다.
<script defer>   HTML 파싱과 병렬적으로(비동기적으로) 스크립트가 로드된다.
  파싱이 모두 끝나면 스크립트를 실행한다.
  <body> 태그 직전에 <script> 를 삽입하는 것과 동작이 동일하다.
  (하지만 이는 브라우저 호환성에 따라 다를 수 있다.)

 

이를 그림으로 비교하자면 다음과 같다.

 

 

 

🔍 참조

<script> https://developer.mozilla.org/ko/docs/Web/HTML/Element/script

<script async> http://tcpschool.com/html-tag-attrs/script-async

<script defer> http://tcpschool.com/html-tag-attrs/script-defer

async vs defer attributes https://www.growingwiththeweb.com/2014/02/async-vs-defer-attributes.html

 

 

 

 

'엘리스 AI 트랙 4기 > Frontend CS Study' 카테고리의 다른 글

[CSS] 박스 모델  (0) 2022.03.09
[HTML] Sematic Markup  (0) 2022.02.13
[HTML] local storage, session storage, cookie  (0) 2022.02.05
[HTML] data- 속성  (0) 2022.02.04
[HTML] 표준 모드와 호환 모드  (0) 2022.02.04

댓글