๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/JavaScript

[JavaScript] ๋ฌธ์„œ์˜ ๋กœ๋“œ์‹œ์  - onload / DOMContentLoaded

๋ฐ˜์‘ํ˜•

๋ฌธ์„œ์˜ ๋กœ๋“œ์‹œ์  - onload / DOMContentLoaded

๐Ÿ’ก์ผ๋ฐ˜์ ์œผ๋กœ, ์Šคํฌ๋ฆฝํŠธ ๋ฌธ์„œ์˜ ๋งˆ์ง€๋ง‰ </body> ์ด์ „์— ์‚ฝ์ž…ํ•˜๋ฉด ๊ตณ์ด ์ด๋ฒคํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ฒ˜๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

๋‹ค๋งŒ,

  1. ๋ฌธ์„œ์˜ <head>์˜์—ญ์— ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‚ฝ์ž…๋˜๊ฑฐ๋‚˜,
  2. ์™ธ๋ถ€์˜ ํŒŒ์ผ์— ์ •์˜๋˜์–ด ์žˆ๋‹ค๋ฉด ์ด๋ฒคํŠธ๋ฅผ ๋ฌธ์„œ์˜ ๋กœ๋“œ ์‹œ์ ์— ๋งž๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.

 

1. onload

  1. ๋ฌธ์„œ์˜ ๋ชจ๋“  ์ฝ˜ํ…์ธ (images, script, css, etc)๊ฐ€ ๋กœ๋“œ๋œ ํ›„ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ. (load ์ด๋ฒคํŠธ๋ผ ํ•œ๋‹ค.)
window.onload = function() {
  // ์‹คํ–‰๋  ์ฝ”๋“œ
}
  • ๋ฌธ์„œ์— ํฌํ•จํ•œ ๋ชจ๋“  ์ฝ˜ํ…์ธ ๊ฐ€ ๋กœ๋“œ๋œ ํ›„ ์‹คํ–‰๋˜๋ฏ€๋กœ ๋ถˆํ•„์š”ํ•œ ๋กœ๋”ฉ ์‹œ๊ฐ„์ด ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ๋‹ค.

  • ๋™์ผํ•œ ๋ฌธ์„œ์— ์˜ค์ง onload๋Š” ํ•˜๋‚˜๋งŒ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.

    • ์ค‘๋ณต๋  ๊ฒฝ์šฐ, ๋งˆ์ง€๋ง‰ ์„ ์–ธ์ด ์‹คํ–‰
    • ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ด๋ฏธ ์„ ์–ธ๋œ ๊ฒฝ์šฐ, ์ด๋ฅผ ์ฐพ์•„ ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค.
  • ์™ธ๋ถ€์˜ ์ง€์›(iframe, image, script)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ํ•ด๋‹น๋œ๋‹ค.

 

  1. <body>์š”์†Œ์— ์†์„ฑ(attribute)์œผ๋กœ ์ง€์ •๋  ์ˆ˜ ์žˆ๋‹ค.
<body onload="์‹คํ–‰๋  ์ฝ”๋“œ"></body>
  • ์œ„์™€ ๊ฐ™์ด ์‚ฌ์šฉ๋  ๊ฒฝ์šฐ, window.onload ๋กœ ์ง€์ •๋œ ๊ฒƒ์€ ๋ฌด์‹œ๋œ๋‹ค.

 

  1. window ๊ฐ์ฒด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์›ํ•˜๋Š” ๊ฐ์ฒด(object)๊ฐ€ ๋กœ๋“œ๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰๋  ์ฝ”๋“œ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
document.getElementById('myFrame').onload = function() {
  // ์‹คํ–‰๋  ์ฝ”๋“œ
}

 

  1. ์ด๋ฒคํŠธ๋ฅผ ์ง์ ‘ ์—ฐ๊ฒฐํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
window.addEventListener('load', function() {
  // ์‹คํ–‰๋  ์ฝ”๋“œ
});

 

jQuery load

jQuery์—์„œ๋Š” onload์™€ ๊ฐ™์€ ๋™์ž‘์„ ํ•˜๋Š” load ๋ฉ”์†Œ๋“œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

// jQuery
$(window).load(function() {
  // ์‹คํ–‰๋  ์ฝ”๋“œ
});

 

2. DOMContentLoaded

HTML๊ณผ script๊ฐ€ ๋กœ๋“œ๋œ ์‹œ์ ์— ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ.

window.addEventListener('DOMContentLoaded', function() {
  // ์‹คํ–‰๋  ์ฝ”๋“œ
});
  • onload ์ด๋ฒคํŠธ๋ณด๋‹ค ๋จผ์ € ๋ฐœ์ƒ. ๋น ๋ฅธ ์‹คํ–‰์†๋„๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์ ํ•ฉํ•˜๋‹ค.
  • IE8 ์ดํ•˜์—์„œ๋Š” ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

jQuery ready

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ DOM ํŠธ๋ฆฌ๊ฐ€ ์ค€๋น„๋˜์—ˆ์„ ๋•Œ์˜ ์‹œ์ ์„ ์ปจํŠธ๋กคํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋กœ DOMContentLoaded์˜ jQuery๋ฒ„์ „์ด๋ผ ์ƒ๊ฐํ•˜์ž.

// jQuery
$(documenet).ready(function() {
  // ์‹คํ–‰๋  ์ฝ”๋“œ
});
  • onload ์ด๋ฒคํŠธ๋ณด๋‹ค ๋จผ์ € ๋ฐœ์ƒํ•œ๋‹ค. ์ฆ‰, ๋ฌธ์„œ์˜ ๋ชจ๋“  ์ž์›์ด ๋‹ค์šด๋กœ๋“œ๋˜์—ˆ์„ ๋–„ ๋ฐœ์ƒํ•˜๋Š” onload์™€ ๋‹ฌ๋ฆฌ, DOM ํŠธ๋ฆฌ๋งŒ ์™„์„ฑ๋˜๋ฉด ๋ฐ”๋กœ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ๋น ๋ฅธ ์‹คํ–‰ ์†๋„๊ฐ€ ํ•„์š”ํ•  ๋–„ ์ ํ•ฉํ•˜๋‹ค.
  • ์—ฌ๋Ÿฌ๋ฒˆ ์‚ฌ์šฉ๋˜๋ฉด ์„ ์–ธ ์ˆœ์„œ์— ๋”ฐ๋ผ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค.

2020/02/05 - [๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปDEVELOPE/jQuery] - [jQuery] ready() load() ์ฐจ์ด


 

Reference

https://webdir.tistory.com/515

๋ฐ˜์‘ํ˜•