๐Ÿคฟ (7) ๋ฆฌ์†Œ์Šค ๋กœ๋“œ ์ตœ์ ํ™” - async์™€ defer

Kayยท2023๋…„ 3์›” 20์ผ
0

Javascript

๋ชฉ๋ก ๋ณด๊ธฐ
8/12

๋‘๋ฒˆ์งธ ํฌ์ŠคํŒ… โ€œ(1) ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ โ†’ ์›น ํ™”๋ฉด์— ๋‚˜์˜ค๊ธฐ๊นŒ์ง€ - ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ •โ€์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์‹ฑ ๊ณผ์ •์— ๋Œ€ํ•ด ํ•™์Šตํ•˜์˜€๋‹ค.

๋‹ค์Œ์€ ๊ทธ ์„ค๋ช… ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

  • ํŒŒ์‹ฑ ๊ณผ์ •์—์„œ <script> ํƒœ๊ทธ๋ฅผ ๋งŒ๋‚˜๋ฉด ๋ Œ๋”๋ง ์—”์ง„์€ ํŒŒ์‹ฑ์„ ์ž ์‹œ ์ค‘๋‹จํ•˜๊ณ  script๋ฅผ ์ฝ๋Š”๋‹ค.

์ด๋กœ ์ธํ•ด ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ , ํŒŒ์‹ฑํ•˜๊ณ , ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ

ํ™”๋ฉด ๋ Œ๋”๋ง์— ์†๋„ ์ง€์—ฐ์ด ์ƒ๊ธฐ๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ทธ ๋ฐฉ๋ฒ•์ธ async์™€ defer์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค.

async

์ผ๋ฐ˜ ์Šคํฌ๋ฆฝํŠธ์—ย asyncย ์†์„ฑ์ด ์กด์žฌํ•˜๋ฉด HTML ๊ตฌ๋ฌธ ๋ถ„์„ ์ค‘์—๋„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ฐ€์ ธ์˜ค๋ฉฐ, ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ด์ง€๋Š” ์ฆ‰์‹œ ์‹คํ–‰ํ•œ๋‹ค.

์ถœ์ฒ˜: ๊ฐœ์ธ ๋ธ”๋กœ๊ทธ - [Browser] async์™€ defer

  • async ์†์„ฑ์„ ์ถ”๊ฐ€ํ•  ๊ฒฝ์šฐ true, ์†์„ฑ์ด ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ false๋ฅผ ์˜๋ฏธ
<script src="a.js" async>
<script src="b.js" async>
<script src="c.js" async>

๋งŒ์•ฝ ์—ฌ๋Ÿฌ ์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ์— async ์†์„ฑ์ด ์žˆ์„ ๊ฒฝ์šฐ ๊ทธ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋”ฐ๋ผ์„œ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์— ์ข…์†์„ฑ์ด ์—†์„ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

defer

๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML ๊ตฌ๋ฌธ ๋ถ„์„ ์ค‘ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ฐ€์ ธ์˜ค์ง€๋งŒ, ์ฆ‰์‹œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ DOM์˜ ์ฒซ๋ฒˆ์งธ ์ƒ๋ช… ์ฃผ๊ธฐ์ธ DOMContentLoaded ์ด์ „์— ์‹คํ–‰๋œ๋‹ค.

์ถœ์ฒ˜: ๊ฐœ์ธ ๋ธ”๋กœ๊ทธ - [Browser] async์™€ defer

  • defer ์†์„ฑ์„ ์ถ”๊ฐ€ํ•  ๊ฒฝ์šฐ true, ์†์„ฑ์ด ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ false๋ฅผ ์˜๋ฏธ
<script src="a.js" defer>
<script src="b.js" defer>
<script src="c.js" defer>

defer ์†์„ฑ์„ ๊ฐ€์ง„ ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ฌธ์„œ์ƒ์˜ ์ˆœ์„œ๋ฅผ ๋”ฐ๋ผ ์‹คํ–‰๋˜๋ฏ€๋กœ,

์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์— ์ข…์†์„ฑ์ด ์žˆ์„ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

์ถœ์ฒ˜
๊ฐœ์ธ ๋ธ”๋กœ๊ทธ - [Browser] async์™€ defer
velog - ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์ž‘๋™ ๊ตฌ์กฐ
mdn ๋ฌธ์„œ - <script>: ์Šคํฌ๋ฆฝํŠธ ์š”์†Œ

0๊ฐœ์˜ ๋Œ“๊ธ€