๋ฌธ์์ ๋ก๋์์ - onload / DOMContentLoaded
๐ก์ผ๋ฐ์ ์ผ๋ก, ์คํฌ๋ฆฝํธ ๋ฌธ์์ ๋ง์ง๋ง
</body>
์ด์ ์ ์ฝ์ ํ๋ฉด ๊ตณ์ด ์ด๋ฒคํธ๋ฅผ ์ด์ฉํ์ฌ ํ๋ก๊ทธ๋๋ฐ์ ์ฒ๋ฆฌํ ํ์๊ฐ ์๋ค.๋ค๋ง,
- ๋ฌธ์์
<head>
์์ญ์ ์คํฌ๋ฆฝํธ๊ฐ ์ฝ์ ๋๊ฑฐ๋,- ์ธ๋ถ์ ํ์ผ์ ์ ์๋์ด ์๋ค๋ฉด ์ด๋ฒคํธ๋ฅผ ๋ฌธ์์ ๋ก๋ ์์ ์ ๋ง๊ฒ ์ฒ๋ฆฌํด์ผ ํ๋ค.
1. onload
- ๋ฌธ์์ ๋ชจ๋ ์ฝํ ์ธ (images, script, css, etc)๊ฐ ๋ก๋๋ ํ ๋ฐ์ํ๋ ์ด๋ฒคํธ. (load ์ด๋ฒคํธ๋ผ ํ๋ค.)
window.onload = function() {
// ์คํ๋ ์ฝ๋
}
-
๋ฌธ์์ ํฌํจํ ๋ชจ๋ ์ฝํ ์ธ ๊ฐ ๋ก๋๋ ํ ์คํ๋๋ฏ๋ก ๋ถํ์ํ ๋ก๋ฉ ์๊ฐ์ด ์ถ๊ฐ๋ ์ ์๋ค.
-
๋์ผํ ๋ฌธ์์ ์ค์ง
onload
๋ ํ๋๋ง ์กด์ฌํด์ผ ํ๋ค.- ์ค๋ณต๋ ๊ฒฝ์ฐ, ๋ง์ง๋ง ์ ์ธ์ด ์คํ
- ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ด๋ฏธ ์ ์ธ๋ ๊ฒฝ์ฐ, ์ด๋ฅผ ์ฐพ์ ํ๋๋ก ํฉ์น๋ ๊ณผ์ ์ด ํ์ํ๋ค.
-
์ธ๋ถ์ ์ง์(iframe, image, script)์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ํด๋น๋๋ค.
<body>
์์์ ์์ฑ(attribute)์ผ๋ก ์ง์ ๋ ์ ์๋ค.
<body onload="์คํ๋ ์ฝ๋"></body>
- ์์ ๊ฐ์ด ์ฌ์ฉ๋ ๊ฒฝ์ฐ,
window.onload
๋ก ์ง์ ๋ ๊ฒ์ ๋ฌด์๋๋ค.
- window ๊ฐ์ฒด๋ฟ๋ง ์๋๋ผ ์ํ๋ ๊ฐ์ฒด(object)๊ฐ ๋ก๋๋์์ ๋ ์คํ๋ ์ฝ๋๋ก ์ค์ ํ ์ ์๋ค.
document.getElementById('myFrame').onload = function() {
// ์คํ๋ ์ฝ๋
}
- ์ด๋ฒคํธ๋ฅผ ์ง์ ์ฐ๊ฒฐํ ์๋ ์๋ค.
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
'๐ฉ๐ปโ๐ปSTUDY > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript / ES6] let, const์ ๋ธ๋ก ๋ ๋ฒจ ์ค์ฝํ (0) | 2021.02.11 |
---|---|
[JavaScript] Call By Value (0) | 2021.01.29 |
[JavaScript] JavaScript ์ฝ์ ๋ฐฉ์๊ณผ ์์น (0) | 2020.09.24 |
[JavaScript] return / break (0) | 2020.08.13 |
[JavaScript] ์ค์ผ์ค๋ง setTimeout ๊ณผ setInterval (0) | 2020.04.10 |