JavaScript

[asyn vs defer] HTMLμ—μ„œ JavaScript 파일 ν¬ν•¨ν•˜κΈ°

lheunoia 2021. 3. 5. 20:08

 

 

 

 

🀷🏻‍♀️ JavaScript νŒŒμΌμ„ μ–΄λ–»κ²Œ ν¬ν•¨ν•˜λŠ” 것이 더 효율적일까?

 

HTML λ¬Έμ„œμ˜ head μ•ˆμ—μ„œ js νŒŒμΌμ„ ν¬ν•¨μ‹œν‚¬ λ•Œ asyn λ˜λŠ” defer ν‚€μ›Œλ“œμ™€ ν•¨κ»˜ μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. asyn와 defer 각 μ˜λ―Έμ™€ 이 λ‘˜μ˜ 차이점을 μ•Œμ•„λ³΄κ³ , μ–΄λŠ 것을 μ‚¬μš©ν•˜λŠ” 것이 더 νš¨μœ¨μ μΌμ§€ μ•Œμ•„ λ΄…μ‹œλ‹€.

 

 

 

 

 

πŸ’‘ asyn

 

JavaScript with asyn

 

 

λΈŒλΌμš°μ €κ°€ HTML λ¬Έμ„œλ₯Ό νŒŒμ‹±(parsing: ν•œ 쀄씩 λΆ„μ„ν•˜λŠ” 것)ν•˜λ‹€κ°€ asyn ν‚€μ›Œλ“œλ₯Ό λ§Œλ‚˜λ©΄ μžλ°”μŠ€ν¬λ¦½νŠΈ νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œ(fetch)ν•˜λ„λ‘ λͺ…λ Ήν•©λ‹ˆλ‹€. 그리고 HTML λ¬Έμ„œλ₯Ό μ΄μ–΄μ„œ νŒŒμ‹±ν•˜λ‹€κ°€ μžλ°”μŠ€ν¬λ¦½νŠΈ 파일이 λ‹€μš΄λ‘œλ“œλ˜λ©΄ HTML λ¬Έμ„œ νŒŒμ‹±μ„ λ©ˆμΆ”κ³  μžλ°”μŠ€ν¬λ¦½νŠΈ νŒŒμΌμ„ μ‹€ν–‰ν•œ λ’€, λ‹€μ‹œ HTML λ¬Έμ„œλ₯Ό νŒŒμ‹±ν•©λ‹ˆλ‹€.

 

 

asyn ν‚€μ›Œλ“œλŠ” HTML λ¬Έμ„œμ˜ νŒŒμ‹±μ΄ μ™„λ£Œλ˜κΈ° 전에 μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œκ°€ λ¨Όμ € μ‹€ν–‰λ˜λ―€λ‘œ μœ„ν—˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. (예: querySelector둜 돔 μš”μ†Œλ₯Ό μ‘°μž‘ν•  경우) λ§Œμ•½ asyn ν‚€μ›Œλ“œλ‘œ ν¬ν•¨λœ μžλ°”μŠ€ν¬λ¦½νŠΈ 파일이 μ—¬λŸ¬ 개라면 μžλ°”μŠ€ν¬λ¦½νŠΈ νŒŒμΌλ“€μ˜ μˆœμ„œλ₯Ό λ¬΄μ‹œν•˜κ³  λ‹€μš΄λ‘œλ“œκ°€ λλ‚œ μˆœμ„œλŒ€λ‘œ μ‹€ν–‰λ©λ‹ˆλ‹€.

 

 

 

 

 

 

 

πŸ’‘ defer

 

JavaScript with defer

 

 

λΈŒλΌμš°μ €κ°€ HTML λ¬Έμ„œλ₯Ό νŒŒμ‹±ν•˜λ‹€κ°€ defer ν‚€μ›Œλ“œλ₯Ό λ§Œλ‚˜λ©΄ μžλ°”μŠ€ν¬λ¦½νŠΈ νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œ(fetch)ν•˜λ„λ‘ λͺ…령해두고 λ³‘λ ¬μ μœΌλ‘œ λ‚˜λ¨Έμ§€ HTML λ¬Έμ„œλ₯Ό λκΉŒμ§€ νŒŒμ‹±ν•©λ‹ˆλ‹€. HTML λ¬Έμ„œμ˜ νŒŒμ‹±μ΄ μ™„λ£Œλ˜λ©΄ λ‹€μš΄λ‘œλ“œλœ μžλ°”μŠ€ν¬λ¦½νŠΈ νŒŒμΌμ„ λ°”λ‘œ μ‹€ν–‰ν•©λ‹ˆλ‹€. 

 

 

defer ν‚€μ›Œλ“œλŠ” HTML λ¬Έμ„œμ˜ νŒŒμ‹±μ΄ μ™„λ£Œλœ ν›„ μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œκ°€ λ°”λ‘œ μ‹€ν–‰λ˜κΈ° λ•Œλ¬Έμ— μ‚¬μš©μžμ—κ²Œ μ›Ή νŽ˜μ΄μ§€λ₯Ό λ¨Όμ € λ³΄μ—¬μ£Όκ²Œ λ©λ‹ˆλ‹€. λ§Œμ•½ defer ν‚€μ›Œλ“œλ‘œ ν¬ν•¨λœ μžλ°”μŠ€ν¬λ¦½νŠΈ 파일이 μ—¬λŸ¬ 개라면 μž‘μ„±λœ μˆœμ„œλŒ€λ‘œ μ‹€ν–‰λ©λ‹ˆλ‹€.

 

 

 

 

 

λ°˜μ‘ν˜•

'JavaScript' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[JS] Array API  (0) 2021.12.22
μ •κ·œ ν‘œν˜„μ‹ 정리  (0) 2021.06.02