[jQuery] .ready() .load() ์ฐจ์ด
1. load()
- ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ.
- JavaScript์ด๋ฒคํธ๋ฅผ "๋ก๋"ํ๊ธฐ ์ํด ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ๋ฐ์ธ๋ ํ๋ค.
- ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๊ณ ๋ฆฌํด๋ HTML์์ ์ผ์นํ๋ ์์๋ฅผ ๋ฐฐ์นํ๋ค.
.load( url [,data][, complete])
, ๋ฐํ๊ฐ : jQueryurl
:: ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ URL์ ๋ํ๋ด๋ ๋ฌธ์์ด.data
:: ์ ํ์ ์ธ ์ธ์, URL๋ก ์์ฒญ๋ณด๋ผ ๋ ๊ฐ์ด ๋ณด๋ผ ๋ฐ์ดํฐ๋ก ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด ๋๋ ๋ฌธ์์ด.complete
:: ์์ฒญ์ด ์๋ฃ๋๋ฉด ํธ์ถ๋์ด์ง ์ฝ๋ฐฑํจ์.
$('#result').load('ajax/test.html #container');
์ด ๋ฉ์๋๊ฐ ์คํ๋๋ฉด ajax/test.html ์ปจํ ์ธ ๋ฅผ ๊ฒ์ํ์ง๋ง jQuery๋ ๋ฐํ๋ ๋ฌธ์๋ฅผ ํ์ฑํ์ฌ container๋ ID๋ฅผ ๊ฐ์ง ์์๋ฅผ ์ฐพ๋๋ค. ์ด ์์์ ์์์ ํฌํจ๋ ๋ด์ฉ์ด container(ID)๋ฅผ ๊ฐ์ง ์์์ ์ฝ์ ๋๋ฉฐ, ๋๋จธ์ง ๋ฐํ๋ ๋ด์ฉ์ ๋ฒ๋ ค์ง๋ค.
jQuery๋ ๋ธ๋ผ์ฐ์ ์ .innerHTML ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ธ์ด ๋ฌธ์๋ฅผ ํ์ฑํ๊ณ ํ์ฌ ๋ฌธ์์ ์ฝ์
ํ๋ค. ์ด ์์
์ ํ๋ ๋์ ๋ธ๋ผ์ฐ์ ๋ ์ข
์ข
๋ฌธ์ ์์ <html>
, <title>
, <head>
์ ๊ฐ์ ์์๋ค์ ๊ฑธ๋ฌ๋ธ๋ค.
๊ทธ ๊ฒฐ๊ณผ๋ก load()
๋ฉ์๋์ ์ํด ๊ฐ์ ธ์จ ์์๋ค์ ๋ฌธ์๊ฐ ์ง์ ๋ธ๋ผ์ฐ์ ๋ก ๊ฐ์ ธ์จ ๋ฌธ์์ ์ ํํ์ง ์์ ์ ์๋ค.
load()
๋ ์ด๋ฒคํธ์กฐ์์ ๋ํ ๋น ๋ฅธ๋ฐฉ๋ฒ์ธ ๋ฉ์๋์์ง๋ง, ๋ช๊ฐ์ง API ํ๊ณ๊ฐ ์๋ค.
์ด๋ฒคํธ .load() ๋ฉ์๋๊ฐ ajax.load() ์ ๋ฌธ์ ๊ฐ ์๋๋ฐ .error()๋ฉ์๋๊ฐ DOM ๋ฉ์๋๊ฐ ํ์ ๋์์ด window.onerror์ ํจ๊ป ์ฌ์ฉํ ์๊ฐ ์๋ค.
๋ง์ฝ load() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ผ๋ฉด .on() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ผ. ($('img').load(fn) ์ $(img).on("load", fn) ์ผ๋ก ๋ณ๊ฒฝ.)
$(window).load(function(){ });
// jQuery 3.0 ์ด์์ ์๋ ์ฌ์ฉ.
$(window).on('load', function(){ });
2. ready()
- DOM์ด ์์ ํ ๋ก๋๋ ๋ ์คํํ ํจ์๋ฅผ ์ง์ ํ๋ค.
ready(handler)
- handler :: function() / DOM์ด ์ค๋น๋ ํ ์คํํ ํจ์.
- ํ์ด์ง์ DOM์ด ์์ ํ๊ฒ ์กฐ์๋๋ฉด JavaScript ์ฝ๋๋ฅผ ์คํํ๋ค. ์ด๋ฒคํธ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์ถ๊ฐํ๊ณ ํ๋ฌ๊ทธ์ธ์ ์ด๊ธฐํํ๋ ๋ฑ ์ฌ์ฉ์๊ฐ ํ์ด์ง๋ฅผ ๋ณด๊ฑฐ๋ ํ์ด์ง๋ฅผ ์ํธ์์ฉํ๊ธฐ์ ์ ํ์ํ ์์ ์ ์ํํ๊ธฐ์ ์ข๋ค.
- ๋ธ๋ผ์ฐ์ ๋ ์๋์ฐ ๊ฐ์ฒด์ load์ด๋ฒคํธ๋ฅผ ์ ๊ณตํ๋ค. ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ์ด๋ฏธ์ง๋ฅผ ํฌํจํ์ฌ ๋ชจ๋ ํ์ด์ง๊ฐ ๋ก๋๋์์์ ์ ์ ์๋ค. ์ด ์ด๋ฒคํธ๋ jQuery๋ฅผ ์ฌ์ฉํ์ฌ
$(window).on('load', handler)
๋ฅผ ์ฌ์ฉํ์ฌ ๋ณผ ์ ์๋ค.jQuery 1.8์์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๊ณ jQuery 3.0์์ ์ ๊ฑฐ๋$(document).on('ready', handler)
๋ ์๋ค. ์ด ์ด๋ฒคํธ๊ฐ ์ฐ๊ฒฐ๋๊ธฐ ์ ์ DOM์ด ์ค๋น๋๋ฉด ์ฒ๋ฆฌ๊ธฐ๊ฐ ์คํ๋์ง ์๋๋ค. - jQuery .ready()
- ํ์ด์ง๊ฐ ์์ ํ ๋ก๋๋๊ธฐ ์ ์ ํญ์ DOM์ด ์ค๋น๋๋ ์ผ๋ฐ์ ์ผ๋ก
.ready()
ํธ๋ค๋ฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฒคํธ๋ฆฌ์ค๋๋ฅผ ๋ฃ๋ ๊ฒ์ ์์ ํ์ง ์๋ค.
3. (document).ready() vs $(window).load()
[์ถ์ฒ]https://webtip.tistory.com/entry/jQuery-documentready-vs-windowonload
3.1) $(document).ready()
- ๋ธ๋ผ์ฐ์ ๊ฐ DOM(Documenet Object Model) ํธ๋ฆฌ๋ฅผ ์์ฑํ ์งํ ์คํ
window.load()
๋ณด๋ค ๋ ๋น ๋ฅด๊ฒ ์คํ๋๋ฉด ์ค๋ณต ์ฌ์ฉํ์ฌ ์คํํด๋ ์ ์ธํ ์์๋๋ก ์คํready
๋ DOM์ด ์์ฑ๋ ์ดํ์ ํธ์ถ๋๋ callback ํจ์
#3.2) $(window).load()
- DOM์ standard ์ด๋ฒคํธ
- html์ ๋ก๋ฉ์ด ๋๋ ํ์ ์์
- ํ๋ฉด์ ํ์ํ ๋ชจ๋ ์์(CSS, JS, image, iframe ๋ฑ)๋ค์ด ์น ๋ธ๋ผ์ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ชจ๋ ์ฌ๋ ค์ง ๋ค์์ ์คํ
- ์ ์ฒด ํ์ด์ง์ ๋ชจ๋ ์ธ๋ถ ๋ฆฌ์์ค์ ์ด๋ฏธ์ง๊ฐ ๋ธ๋ผ์ฐ์ ์ ๋ถ๋ ค์จ ํ, ์๋ํ๊ฒ ๋์ด ์ด๋ฏธ์ง๊ฐ ์๋จ๊ฑฐ๋ ๋๋ ์ด๊ฐ ์๊ธธ ๋๋ ๊ทธ๋งํผ์ ์๊ฐ์ ๊ธฐ๋ค๋ ค์ผ ํ๋ค.
- ์ธ๋ถ ๋งํฌ๋ ํ์ผ include ์ ๊ทธ ์์ window.load ์คํฌ๋ฆฝํธ๊ฐ ์์ผ๋ฉด ๋ ์ค ํ๋๋ฉฐ ์ ์ฉ๋๋ฉฐ, body onload์ด๋ฒคํธ์ ๊ฐ์ด body์์ onload ์ด๋ฒคํธ๋ฅผ ์ฐ๊ฒ ๋๋ฉด ๋ชจ๋ window.load() ๊ฐ ์คํ๋์ง ์๋ ํ์์ด ๋ฐ์
load
๋ img์ ๊ฐ์ ๋ค๋ฅธ ์์๊ฐ ๋ชจ๋ load ๋ ์ดํ์ ํธ์ถ๋๋ callback ํจ์
DOM์ด ์์ฑ๋๋ฉด ๋ฐ์ํ๋ ์ด๋ฒคํธ ready
๋ชจ๋ ์์๋ค์ด ๋ก๋ฉ์๋ฃ๋๋ฉด ๋ฐ์ํ๋ ์ด๋ฒคํธ load
$(document).ready(function(){
// HTML ๋ฌธ์๊ฐ ๋ก๋๋๊ณ DOM์ด ์ค๋น๋๋ฉด ์คํ
console.log('document is ready');
});
$(window).load(function() {
// ๋ชจ๋ ํ๋ ์, ๊ฐ์ฒด, ์ด๋ฏธ์ง๋ฅผ ํฌํจํ์ฌ ์ ์ฒด ํ์ด์ง๊ฐ ์์ ํ ๋ก๋๋๋ฉด ์คํ
console.log("window is loaded");
});
- ์์ 1_๋น ๋ฅธ ์์
<body onload= "console.log('body onload');"></body>
// jQuery
$(window).load(function(){ // $(window).on('load', function(){ }); [jQuery 3.0]
console.log('ํ์ด์ง ๋ก๋๋จ');
});
// jQuery
$(document).ready(function(){
console.log('DOM ์์ฑ๋จ');
});
// JavaScript
window.onload = function() { // onload๋ ํ๋ฒ๋ง ํธ์ถ๊ฐ๋ฅ
console.log('๋ก๋ฉ ์๋ฃ')
};
// DOM ์์ฑ๋จ > ๋ก๋ฉ ์๋ฃ > ํ์ด์ง ๋ก๋๋จ
$(window).load()
์ $(window).on('load', function(){})
์ ์์๋๋ก ํธ์ถ๋๋ค.
- ์์ 2_๋น ๋ฅธ์์
<body onload="fn_bodyload()"></body>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
window.onload = function(){
console.log('call type........0');
};
jQuery(document).ready(function(){
console.log('call type........1');
});
(function($){
console.log('call type........3');
})(jQuery);
$(window).load(function(){
console.log('call type........4');
});
function fn_bodyload(){
console.log('call type........5');
}
$(document).ready(function(){
console.log('call type........2');
})
// call type........3, 1, 2, 0, 4
</script>
window.onload
๋ ๋จ ํ๋ฒ๋ง ์ธ์.
body onload๋ window.onload
์ ๊ฐ์ด ์์ผ๋ฉด body onload
๊ฐ ์ธ์์ด ์๋๋ค.
[์ถ์ฒ]https://handam.tistory.com/70
document๊ฐ "์ค๋น"๋ ๋๊น์ง ํ์ด์ง๋ฅผ ์์ ํ๊ฒ ๋ค๋ฃฐ ์ ์๋ค. jQuery๋ ์ด๋ฌํ ์ค๋น์ํ๋ฅผ ๊ฐ์งํ๋ค.
$(document).ready()
์์ ํฌํจ๋ ์ฝ๋๋ DOM ํ์ด์ง๊ฐ JavaScript ์ฝ๋๋ฅผ ์คํํ ์ค๋น๊ฐ ๋ ํ์๋ง ์คํ๋๋ค.
$(window).on('load', function(){})
์์ ํฌํจ๋ ์ฝ๋๋ DOM ๋ฟ๋ง์ด ์๋ ์ ์ฒดํ์ด์ง(์ด๋ฏธ์ง ๋๋ iframe)๊ฐ ์ค๋น๋๋ฉด ์คํ๋๋ค.
'๐ฉ๐ปโ๐ปSTUDY > jQuery' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[jQuery] :visible ์กฐ๊ฑด (1) | 2020.04.01 |
---|---|
[jQuery] ํํฐ๋ง๋ฉ์๋ first() last() eq() filter() not() has() is() map() slice() (0) | 2020.02.18 |
[jQuery] on() off() one() (0) | 2020.02.13 |
[jQuery] queue() & dequeue() (0) | 2020.02.07 |
[jQuery] stop() & clearQueue() & delay() (0) | 2020.02.04 |