DEVLOG
ํ์ด์ง ๋ก๋ ํ ์คํํ๊ธฐ (window.onload, document.ready) / document.ready๋ฅผ ์์์๋ฐ์คํฌ๋ฆฝํธ๋ก! (DOMContentLoaded) ๋ณธ๋ฌธ
ํ์ด์ง ๋ก๋ ํ ์คํํ๊ธฐ (window.onload, document.ready) / document.ready๋ฅผ ์์์๋ฐ์คํฌ๋ฆฝํธ๋ก! (DOMContentLoaded)
meroriiDev 2020. 12. 11. 10:01๐ ๋ชฉ์ฐจ
์คํฌ๋ฆฝํธ๋ฅผ ์์ชฝ์์ ๋ถ๋ฌ์ค๋ฉด ์์๋ฅผ ์ฐพ์ง ๋ชปํ๋ ์ค๋ฅ๋ฅผ,
์๋์ชฝ์์ ๋ถ๋ฌ์ค๋ฉด ๋๋ฆฐ ๋ก๋ฉ์๋ ๋ฑ์ ์ด์ ๋ก
์ฐ๋ฆฌ๋ ์คํฌ๋ฆฝํธ ๋ด์์ ํ์ด์ง๋ก๋ ํ ๋ถ๋ฌ์ค๋ ํจ์๋ฅผ ์ฌ์ฉํ๊ณค ํ๋ค.
๋ํ์ ์ผ๋ก js๊ตฌ๋ฌธ์ window.onload์ jQuery๊ตฌ๋ฌธ์ document.ready๋ฅผ ๋ง์ด ์ฌ์ฉํ ํ ๋ฐ
์ด ๋์ ๋ํด์ ์์๋ณด๊ณ ์ด ์ธ์ ๋ ์ด๋ค๊ฒ๋ค์ ์ฌ์ฉํ ์ ์๋์ง ์์๋ณด์!
window.onload()
<script>
window.onload = function(){
}
</script>
๋ํ์ ์ธ ์์ฑ์ธ window.onload๋ HTML์ ๋ชจ๋ ํ๊ทธ๋ฅผ ๋ถ๋ฌ์จ ํ ์ฝ๋๋ด์ onload๊ฐ ์์ ๊ฒฝ์ฐ ์ฝ์ด๋ธ๋ค.
๋ํ js, css๊น์ง ๋ชจ~~๋ ์ฝ์ ํ์ ์คํ์ด ๋๊ธฐ ๋๋ฌธ์ ๋งค์ฐ๋งค์ฐ๋งค์ฐ ๋๋ฆด ์ ์๋ค๋ ๋จ์ ์ด ์๋ค.
๋ํ onload๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ์ฅ ๋ง์ง๋ง์ ์คํ๋ onloadํจ์๋ง ์คํํ๊ฒ ๋๋๋ฐ
๋ฌผ๋ก ํ ํ๋ก์ ํธ์ onloadํจ์๋ ํ๋๋ง ์ฌ์ฉํด์ ์์ ๋ค ๋๋ ค๋ฃ๊ฒ ์ง๋ง ๋ง์ํ๋ ์ฌ๋ฌ๊ฐ์ onloadํจ์๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค๋ฉด ๊ฐ์ฅ ๋ง์ง๋ง์ ์คํ๋ onloadํจ์ ํ๋๋ง! ์คํ์ด ๋๊ธฐ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
๋ฐ๋ผ์ ๋ง์ ๋ถ๋ค์ด window.onload๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ถ์ฒํ์ง๋ ์์ผ์ จ๋ค.
๊ทธ๋์ ์ด์๋ํ ๋์ฒ๋ก ๋์จ๊ฒ์ด JQuery์ document.ready์ด๋ค.
document.ready
<script>
$(document).ready(function(){
});
</script>
document.ready๋ window.onload์ ๋ค๋ฅด๊ฒ ํ๊ทธ์ ๋ก๋๋ง์ ๊ฐ์งํ๋ค.
์ด๋ฏธ์ง๋ ์์์๊ด์์ด DOMํธ๋ฆฌ๋ฅผ ์์ฑํ ์งํ ์คํ๋๋ฉด์ window.load๋ณด๋ค ์กฐ๊ธ ๋ ๋น ๋ฅด๊ฒ ์คํ๋๊ณ ์ค๋ณต ์ฌ์ฉํ์ฌ ์คํํด๋ ์ ๋ถ ๋ค ์คํํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.
ํ์ง๋ง.. jQuery๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด cdn์ ์ถ๊ฐํด์ผํ๋๋ฐ ์์ฆ์ฒ๋ผ ์์์๋ฐ์คํฌ๋ฆฝํธ์ ์ค์์ฑ์ด ๋์์ง๋ฉด์ ์์ฐ์ค๋ jQuery์ ์ฌ์ฉ๋น๋๊ฐ ์ค์ด๋คํ ๋ฐ ๊ตณ์ด document.ready ์ด ํ์ค๋ง์ ์ํด cdn์ ์ถ๊ฐํ๋๊ฑด ๋๋ฌด๋๋ ๋นํจ์จ์ ์ด๋ค.
document.ready์ ํฌ๊ฒ ๋ค๋ฅผ๋ฐ ์๋ ์ฑ๋ฅ์ VanilaJS๋ง์ผ๋ก๋ ๊ตฌํํ ์ ์๋๋ฐ
์ด๊ฒ์ DOMContentLoaded์ด๋ค.
DOMCountentLoaded
window.addEventListener('DOMContentLoaded', function()
{
});
DOMContentLoaded๋ addEventLister์ ์์ฑ์ผ๋ก ์ฐ์ด๊ฒ ๋๋ค.
์ด ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ฉด document.ready์ ํฌ๊ฒ ๋ค๋ฅผ๋ฐ ์๋ ์ฑ๋ฅ์ ๊ตฌํํ ์ ์๋ค.
ํ์ง๋ง ie8์ดํ์์๋ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ณธ์ธ์ด ๋์ฒํด์ผํ๋ ํ๊ฒฝ์ด ์ด๋๊น์ง์ธ์ง ์ฒดํฌ๋ฅผ ํด ๋ณผ ํ์๊ฐ ์๋ค.
ํ์ง๋ง ์์ฆ์ ie8์ดํ์ ์ ์ ์จ์ด ๋ํญ ๋ฎ์์ง ์ํ๋ผ ๋ฌธ์ ์์ด ์ฌ์ฉํ ์ ์์ง ์์๊น๋ผ๊ณ ์๊ฐํ๋ค.
(ie8์ดํ์์๋ ๋์ฒํ ์ ์๋๋ก ์ฝ๋ฐฑ์ ์ง๋์ ์ ์์ง๋ง....ie8์ธ๋ฐ...๊ตณ์ด..?)
๊ธฐํ..
์ด ์ธ์๋ ํจ์๋ฅผ ์คํํ ๋ click์ด๋ผ๋์ง, change๋ผ๋์ง ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ํจ์๋ฅผ ํธ์ถํ๋ ๋ฐฉ๋ฒ๋ ์๋ค.
ํ์ง๋ง ๋ด๊ฐ ์๊ฐํด๋ณด๊ณ ์ถ์๋ ๊ฒ์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋๊ฐ ์๋ ํ์ด์ง๋ฅผ ์คํํ์๋ ํจ์๊ฐ ํธ์ถ๋๋ ๋ถ๋ถ์ด์๋ค.
ํ์์๋ ์๋ฌด๋ ์ง ์๊ฒ document.ready๋ฅผ ์ฌ์ฉํ์ง๋ง jQuery์ ์ฌ์ฉ์ ์ต๋ํ ์ค์ด๋ ค๊ณ ํ๊ณ ์๊ธฐ๋๋ฌธ์
์ด ๊ธ์ ํตํด ๋๋ ์๋ง DOMContentLoaded๋ผ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ง์์๊น??
๋ง์ฝ ์ด ๋ฐฉ๋ฒ์ ๋ฌธ์ ๊ฐ ์๊ธฐ๊ฑฐ๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์์ง๋ ๋ชจ๋ฅด๋ ๋์์์ด ์ ๋ณด๋ฅผ ์ฐพ์๋ค๋ ํ์๋ ์์ ๊ฒ ๊ฐ๋ค:)