rigood

[HTML] script ํƒœ๊ทธ์˜ defer, async ๋ณธ๋ฌธ

๐ŸŽจ ํ”„๋ก ํŠธ์—”๋“œ/html & css

[HTML] script ํƒœ๊ทธ์˜ defer, async

rigood 2023. 4. 30. 20:57

1. ๊ธฐ๋ณธ ๋™์ž‘ ์›๋ฆฌ

- ๋ธŒ๋ผ์šฐ์ €๊ฐ€ html์„ ์ฝ๋‹ค๊ฐ€ (= html ํŒŒ์‹ฑ) script ํƒœ๊ทธ๋‚˜ ์™ธ๋ถ€ script๋ฅผ ๋งŒ๋‚˜๋ฉด, DOM ์ƒ์„ฑ์„ ์ค‘๋‹จํ•˜๊ณ  script๋ฅผ ๋‹ค์šด๋ฐ›๊ณ  ์‹คํ–‰ํ•จ

// script ํƒœ๊ทธ
<script></script>

// ์™ธ๋ถ€ script
<script src="์ฃผ์†Œ" />

- script ์•„๋ž˜์— ์žˆ๋Š” DOM ์š”์†Œ์—๋Š” ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ

 

DOM tree๊ฐ€ ์ƒ์„ฑ๋˜๊ธฐ ์ „์— js ํŒŒ์ผ์ด ์‹คํ–‰๋˜์—ˆ๊ณ , getElementById๋กœ ์„ ํƒํ•œ ์š”์†Œ๊ฐ€ null์ด๋ฏ€๋กœ addEventListener ์‹คํ–‰ ์‹œ ์—๋Ÿฌ ๋ฐœ์ƒ

 

- script ์šฉ๋Ÿ‰์ด ํฐ ๊ฒฝ์šฐ, script๋ฅผ ๋‹ค์šด๋ฐ›๋Š” ๋™์•ˆ ์‚ฌ์šฉ์ž๋Š” script ์•„๋ž˜์ชฝ ํŽ˜์ด์ง€๋ฅผ ๋ณผ ์ˆ˜ ์—†์Œ

 

2. script๋ฅผ ํŽ˜์ด์ง€ ๋งจ ์•„๋ž˜ ๋ฐฐ์น˜

- 1๋ฒˆ์—์„œ ์–ธ๊ธ‰๋œ ๋ถ€์ž‘์šฉ์€ ํ•ด๊ฒฐ๋˜๋‚˜,

- html ๋ฌธ์„œ ์šฉ๋Ÿ‰์ด ํฐ ๊ฒฝ์šฐ, html์„ ๋‹ค์šด๋ฐ›์€ ํ›„ script๋ฅผ ๋‹ค์šด๋ฐ›์œผ๋ฉด ํŽ˜์ด์ง€๊ฐ€ ๊ต‰์žฅํžˆ ๋А๋ ค์ง

3. defer ์†์„ฑ ์‚ฌ์šฉ (์ง€์—ฐ ์Šคํฌ๋ฆฝํŠธ)

<script defer src="์ฃผ์†Œ" />

- script๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋‹ค์šด๋ฐ›์œผ๋ฏ€๋กœ html ํŒŒ์‹ฑ์ด ๋ฉˆ์ถ”์ง€ ์•Š์Œ

- html ํŒŒ์‹ฑ์ด ๋๋‚œ ํ›„, DOMContentLodaded ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์ „์— script๊ฐ€ ์‹คํ–‰๋จ

- html ๋ฌธ์„œ์— ์ถ”๊ฐ€๋œ ์ˆœ์„œ๋Œ€๋กœ script๊ฐ€ ์‹คํ–‰๋จ

4. async ์†์„ฑ ์‚ฌ์šฉ (๋น„๋™๊ธฐ ์Šคํฌ๋ฆฝํŠธ)

<script async src="์ฃผ์†Œ" />

- defer ์†์„ฑ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ script๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋‹ค์šด๋ฐ›์œผ๋ฏ€๋กœ html ํŒŒ์‹ฑ์ด ๋ฉˆ์ถ”์ง€ ์•Š์Œ

- html ํŒŒ์‹ฑ ์™„๋ฃŒ ์—ฌ๋ถ€์™€ ์ƒ๊ด€์—†์ด ๋‹ค์šด๋กœ๋“œ ๋˜๋ฉด script๊ฐ€ ์‹คํ–‰๋จ

- script๊ฐ€ ์‹คํ–‰๋  ๋•Œ๋Š” html ํŒŒ์‹ฑ์ด ๋ฉˆ์ถค

- ๋จผ์ € ๋‹ค์šด๋กœ๋“œ ๋œ script๊ฐ€ ๋จผ์ € ์‹คํ–‰๋จ

 

 

 

์ถœ์ฒ˜

๋ชจ๋˜ JavaScript ํŠœํ† ๋ฆฌ์–ผ

Comments