<!DOCTYPE html>
<html lang="en">
<head>
<script src="main.js"></script>
</head>
<body></body>
</html>
π html λ¬Έμ parsingμ€ script νκ·Έλ₯Ό λ§λλ©΄ parsingμ λ©μΆκ³ script νκ·Έμμ main.jsνμΌμ λΆλ¬μ€λ μμ μ λ¨Όμ μ€ννλ€. μ€νμ΄ μλ£ λ νμ html λ¬Έμλ₯Ό λ€μ parsing νλ€. λ°λΌμ μ¬μ©μκ° μΉμ¬μ΄νΈλ₯Ό 보λλ° κ±Έλ¦¬λ μκ°μ΄ κΈΈμ΄μ§ μ μκ³ main.js νμΌμ λ‘λλμμ§λ§ htmlμ μμ§ parsing νμ§ μμ μ€λ₯κ° λ°μν μ μλ€λ λ¨μ μ΄ μλ€.
<!DOCTYPE html>
<html lang="en">
<head> </head>
<body>
<h1>Hello World!</h1>
<script src="main.js"></script>
</body>
</html>
π html νμΌμ parsingμ΄ μλ£λ ν main.jsκ° μ€νλκΈ° λλ¬Έμ jsνμΌμ΄ λ¨Όμ λ‘λλμ΄ λ°μνλ λ¬Έμ μ μ΄ μκΈ°μ§ μλλ€.
π νμ§λ§ λλΆλΆμ μΉμ¬μ΄νΈμμλ jsνμΌμ μμ‘΄λκ° λκΈ° λλ¬Έμ μ¬μ ν μ¬μ©μκ° κΈ°λ€λ €μΌλλ μν©μ΄ λ°μν μ μλ€.
β¨ μ΄λ¬ν λ¬Έμ μ μ ν΄κ²°νκΈ° μν΄μ HTML5μμ script νκ·Έμ μμ±μΈ asyncμ deferκ° μΆκ°λμλ€.
<!DOCTYPE html>
<html lang="en">
<head>
<script async src="main.js"></script>
</head>
<body></body>
</html>
β asyncμμ±μ μ΄μ©νλ©΄ λΈλΌμ°μ κ° htmlμ parsingνλ€κ° asyncλ₯Ό λ§λκ² λλ©΄ jsνμΌμ΄ μ€ννλλ‘ λͺ λ Ήλ§ ν΄λκ³ html parsingμ κ³μ μ§ννλ€. κ·Έλ¬λ€ jsνμΌμ΄ λͺ¨λ loadκ° μλ£ λμμλ html parsingμ λ©μΆκ³ jsνμΌμ μ€νμν¨λ€. μ€νμλ£ν λ©μ·λ html parsingμ λ€μ μ§νμν¨λ€.
π jsνμΌμ΄ μμμ μμ‘΄νλ κ²½μ°, jsνμΌμ΄ μλ£λλ λλ‘ μ§νμ΄ λκΈ° λλ¬Έμ μμκ° λ³΄μ₯λμ§ μλλ€.
<!DOCTYPE html>
<html lang="en">
<head>
<script defer src="main.js"></script>
</head>
<body></body>
</html>
β deferμμ±μ μ΄μ©νλ©΄ htmlμ parsingνλ€κ° jsνμΌμ λ§λλ©΄ jsνμΌμ΄ μ€νν μ μλλ‘ λ‘λλ₯Ό νλ€. html parsingμ κ³μ μ§νμ νκ³ , νμ±μ΄ μλ£κ° λλ©΄ jsνμΌμ μμ°¨μ μΌλ‘ μ€νμν¨λ€.
π DOM μμ±μ΄ μλ£λμμ λ jsνμΌμ΄ μμ°¨μ μΌλ‘ μ€νλκΈ° λλ¬Έμ μμ± μμκ° μ μ§λλ€.