λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ“‚ 기술 λ©΄μ ‘/Language

JavaScript μ½”λ“œλ₯Ό HTML보닀 밑에 μž‘μ„±ν•΄μ•Ό ν•˜λŠ” μ΄μœ λŠ” λ¬΄μ—‡μΈκ°€μš”?

by Dev. Ella 2023. 8. 29.

πŸ‘©πŸ»‍πŸ’» JavaScript μ½”λ“œλ₯Ό HTML보닀 λ°‘에 μž‘μ„±ν•΄μ•Ό ν•˜λŠ” μ΄μœ λŠ” λ¬΄μ—‡μΈκ°€μš”?

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <link rel="stylesheet" href="main.css">
</head>
<body>
  <div class="alert-box" id="alert">μ•Œλ¦Όμ°½</div>
  <button onclick="openAlert()">Open</button>
  <script>
    function openAlert() {
      document.getElementById('alert').style.display ='block';
    }
  </script>
</body>
</html>

 

 

πŸ’πŸ»‍♀️ μš”μ•½ν•˜μžλ©΄ ,

νŽ˜μ΄μ§€ λ‘œλ”© 속도λ₯Ό ν–₯μƒμ‹œν‚¬ 수 있고, DOM μ‘°μž‘ 및 이벀트 μ²˜λ¦¬κ°€ 효율적으둜 μ΄λ£¨μ–΄μ§ˆ 수 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€.


1. λ‘œλ”© μˆœμ„œ

μ›Ή λΈŒλΌμš°μ €λŠ” HTML λ¬Έμ„œλ₯Ό μœ„μ—μ„œ μ•„λž˜λ‘œ νŒŒμ‹±ν•˜λ©° λ‘œλ”©ν•˜λŠ”λ°, HTML λ¬Έμ„œ 내에 μžˆλŠ” μš”μ†Œλ“€μ„ λ§Œλ‚˜λ©΄ ν•΄λ‹Ή μš”μ†Œλ“€μ„ μˆœμ„œλŒ€λ‘œ μ²˜λ¦¬ν•˜κ²Œ λ©λ‹ˆλ‹€. λ”°λΌμ„œ HTML λ¬Έμ„œμ— ν¬ν•¨λœ JavaScript μ½”λ“œλ„ 순차적으둜 μ²˜λ¦¬λ©λ‹ˆλ‹€. λ§Œμ•½ JavaScript μ½”λ“œκ°€ HTML보닀 μœ„μ— μœ„μΉ˜ν•œλ‹€λ©΄, HTML νŒŒμ‹± 쀑에도 JavaScript μ½”λ“œλ₯Ό λ§Œλ‚˜κ²Œ λ©λ‹ˆλ‹€.

 

이 경우 λΈŒλΌμš°μ €λŠ” JavaScript μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ €λ©΄ HTML νŒŒμ‹±μ„ μ€‘λ‹¨ν•˜κ³  μ½”λ“œλ₯Ό μ²˜λ¦¬ν•΄μ•Ό ν•˜λ―€λ‘œ, νŽ˜μ΄μ§€ λ‘œλ”©μ΄ 느렀질 수 μžˆμŠ΅λ‹ˆλ‹€. λ§Œμ•½ JavaScript μ½”λ“œκ°€ DOM μš”μ†Œλ“€μ„ μ‘°μž‘ν•˜λ €κ³  ν•  경우, ν•΄λ‹Ή μš”μ†Œλ“€μ΄ 아직 νŒŒμ‹±λ˜μ§€ μ•Šμ•˜μ„ 수 μžˆμ–΄μ„œ 였λ₯˜κ°€ λ°œμƒν•  κ°€λŠ₯성이 μžˆκΈ°λ„ ν•©λ‹ˆλ‹€.

 

2. DOM μ ‘κ·Ό 및 μ‘°μž‘

JavaScriptλŠ” λŒ€λΆ€λΆ„ DOM μš”μ†Œλ“€μ„ μ‘°μž‘ν•˜κ³  μƒν˜Έμž‘μš©ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€. 즉, μ›Ή νŽ˜μ΄μ§€μ˜ μš”μ†Œλ“€μ„ μ„ νƒν•˜κ³  μˆ˜μ •ν•˜λŠ” λ“±μ˜ μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

 

λ§Œμ•½ JavaScript μ½”λ“œκ°€ HTML μ•„λž˜μ— μœ„μΉ˜ν•œλ‹€λ©΄, μ½”λ“œκ°€ μ‹€ν–‰λ˜λŠ” μ‹œμ μ— 이미 DOM이 μƒμ„±λ˜μ–΄ μžˆμœΌλ―€λ‘œ JavaScriptλŠ” μ¦‰μ‹œ μš”μ†Œλ“€μ— μ ‘κ·Όν•˜κ³  μ‘°μž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

3. 이벀트 처리

JavaScriptλŠ” μ‚¬μš©μžμ˜ μƒν˜Έμž‘μš©μ— 따라 동적인 λ°˜μ‘μ„ μ œκ³΅ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ”λ°, 이벀트 처리λ₯Ό μœ„ν•΄ HTML μš”μ†Œμ— 이벀트 λ¦¬μŠ€λ„ˆλ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜, 이벀트 처리 ν•¨μˆ˜λ₯Ό 등둝해야 ν•©λ‹ˆλ‹€.

 

λ§Œμ•½ JavaScript μ½”λ“œκ°€ HTML μ•„λž˜μ— μœ„μΉ˜ν•œλ‹€λ©΄, νŽ˜μ΄μ§€μ˜ λͺ¨λ“  μš”μ†Œλ“€μ΄ λ‘œλ”©λœ 이후에 이벀트 λ¦¬μŠ€λ„ˆκ°€ λ“±λ‘λ˜λ―€λ‘œ μ‚¬μš©μžμ˜ μƒν˜Έμž‘μš©μ— 더 λΉ λ₯΄κ²Œ λ°˜μ‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

4. λ Œλ”λ§ 지연 μ΅œμ†Œν™”

λΈŒλΌμš°μ €λŠ” HTML을 νŒŒμ‹±ν•˜λ©΄μ„œ νŽ˜μ΄μ§€μ˜ λ‚΄μš©μ„ ν‘œμ‹œν•©λ‹ˆλ‹€.

 

λ§Œμ•½ JavaScript μ½”λ“œκ°€ HTML μ•„λž˜μ— μœ„μΉ˜ν•œλ‹€λ©΄, λΈŒλΌμš°μ €λŠ” μ½”λ“œ 싀행을 μœ„ν•΄ νŽ˜μ΄μ§€ λ Œλ”λ§μ„ μ€‘μ§€ν•˜μ§€ μ•Šμ•„λ„ λ˜λ―€λ‘œ μ‚¬μš©μžμ—κ²Œ 더 λΉ λ₯΄κ²Œ μ½˜ν…μΈ λ₯Ό 보여쀄 수 μžˆμŠ΅λ‹ˆλ‹€.

 

λŒ“κΈ€