Javascript load
<script> νκ·Έμ μμΉμ λ°λ₯Έ λ¬Έμ
DOM μ λΈλΌμ°μ μ λ λλ§ μμ§μ μ΄μ©ν΄ html μ νμ€μ© parsing νλ©΄μ μμ±λ©λλ€. νμ€μ© μ½μ΄μ λ λλ§μ νλ€κ° <script> νκ·Έλ₯Ό λ§λλ©΄ μ΄λ»κ² λ κΉμ? μΌλ¨ html νμΌμ parsing μ λ©μΆκ³ ν΄λΉ js νμΌμ parsing νκΈ° μμν©λλ€. νμ§λ§ μ΄ λ ν΄λΉλλ μμκ° μμ§ κ°μ²΄ν λκΈ° μ μ΄λΌλ©΄ μ΄λ»κ² λ κΉμ?
κ°λ°μ λͺ¨λμμ μλ¬κ° λ¨λκ²μ νμΈν μ μμκ²λλ€. μ΄λ₯Ό ν΄κ²°νκΈ° μν 3κ°μ§ λ°©λ²μ΄ μμ΅λλ€.
β’
<body> μ μ΅νλ¨μμ <script> μ€ννκΈ°
β’
window.onload λ±λ‘
DOM μμ± λΏλ§ μλλΌ img, script, css λ±μ 컨ν
μΈ κ° μ λΆ λ‘λλ ν λ°μνλ μ΄λ²€νΈ μ
λλ€.
μμ μΈκ°μ§ λ°©λ²μ μ¨λ μ΄μ°λλ HTML parsing μ΄ λλκ³ λμμΌ script fetch β script execution μ΄ λ°μν©λλ€. μ΄λ¬ν λΆνΈν¨μ μ€μ΄κΈ° μν΄ html5 μμλ λ€μκ³Ό κ°μ λ λ°©μμ΄ μΆκ°λμμ΅λλ€.
Javascript defer μ async
defer
HTML νμ±κ³Ό ν¨κ» λΉλκΈ°λ‘ JavaScript νμΌμ λΆλ¬μ΅λλ€. λλ¬Έμ HTML νμ±μ΄ μλ£λ ν, JavaScript μ½λλ₯Ό μ€νν©λλ€.
<script src="" defer></script>
HTML
볡μ¬
async
HTML νμ±κ³Ό ν¨κ» λΉλκΈ°λ‘ JavaScript νμΌμ λΆλ¬μ¨λ€λ μ μ defer μ κ°μ§λ§ HTML νμ± μλ£λ₯Ό κΈ°λ€λ¦¬μ§ μκ³ λ¨Όμ λ‘λ©λλ JavaScript νμΌλΆν° μ€νμ΄ μμλλ€λ μ μμ μ°¨μ΄κ° μμ΅λλ€.
λ¨, JavaScript νμΌμ μ€νν λμλ HTML νμ±μ΄ μ€λ¨λ©λλ€.
<script src="" ansync></script>
HTML
볡μ¬