ํฐ์คํ ๋ฆฌ ๋ทฐ
์๋ฐ์คํฌ๋ฆฝํธ ์ฑ๋ฅ ์ต์ ํ #2 : ๋ ๋๋ง
nopinokio 2017. 3. 21. 15:51์๋ฐ์คํฌ๋ฆฝํธ ์ฑ๋ฅ ์ต์ ํ #1 ํฌ์คํธ์ ๋ง์ฐฌ๊ฐ์ง๋ก NHN์ ์ด๋ ๊ฒ ํ๋ค ์๋ฐ์คํฌ๋ฆฝํธ ์ฑ๋ฅ ์ด์ผ๊ธฐ์ ๋ด์ฉ๋ค์ด๋ค.
๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๊ณผ์ ๋ฐ ๊ธฐํ์์๋ ์๋๋ฅผ ํฅ์ ์ํฌ์ ์๋ค.
๋ ๋๋ง ๋ฐ ๊ธฐํ ๋ฐฉ๋ฒ์๋ ํฌ๊ฒ ์๋ 4๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
- reflow, repaint ์ต์ํ
- ๋ ธ์ถ ์ ์ด๋ฅผ ํตํ reflow ์ต์ํ (display ์์ฑ ์ด์ฉ)
- DOM, ๊ฐ์ฒด ์บ์ฑ
- ๊ธฐํ
reflow, repaint ์ต์ํ
๊ฐ๊ฑฐ๋ ๋์ผํ ์์ ์ ๊ทธ๋ฃน์ ๋ฌถ์ด ์คํํ๋ค. (๊ตฌ๋ฒ์ ๋ธ๋ผ์ฐ์ ์์๋ ์ ์ ์์ ์ ๊ฒฝ์ฐ, ์ฌ๋ฌ๋ฒ์ reflow์ repaint๊ฐ ๋ฐ์ํ๋ ์ต์ ๋ฒ์ ํฌ๋กฌ์ ๊ฒฝ์ฐ ํ๋ฒ๋ง ๋ฐ์ํ๋ค๊ณ ํจ)
reflow์ repaint์ ๋ํ ์ค๋ช ์ ์๋ ๊ธ ์ฐธ๊ณ
๋ธ๋ผ์ฐ์ ๋ ๋๋ง : reflow & repaint
// ์
var width = document.getElementById("layer1").style.width;
document.getElementById("layer2").style.width = width;
var heigth = document.getElementById("layer3").style.heigth;
document.getElementById("layer4").style.heigth = heigth;
// ํ
var width = document.getElementById("layer1").style.width;
var heigth = document.getElementById("layer3").style.heigth;
document.getElementById("layer2").style.width = width;
document.getElementById("layer4").style.heigth = heigth;
๋ ธ์ถ ์ ์ด๋ฅผ ํตํ reflow ์ต์ํ (display ์์ฑ ์ด์ฉ)
์ฌ๋ฌ๊ฐ์ง ์์ฑ์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ์ต์ข ๊ฒฐ๊ณผ๊ฐ ๋ฐ์๋๋ ๋ง์ง๋ง ์์ ์ ์์๋ฅผ ์ถ๋ ฅํ๋ฉด reflow, repaint ํ์๋ฅผ ์ค์ผ ์ ์๋ค.
// ์
var element = document.getElementById("list");
for (var i=0; i<100; i++) {
element.style.width = i + "px";
}
// ํ
var element = document.getElementById("list");
element.style.display = "none";
for (var i=0; i<100; i++) {
element.style.width = i + "px";
}
element.style.display = "block";
DOM, ๊ฐ์ฒด ์บ์ฑ
๋ฐ๋ณต๋๋ ์์๋ฅผ ๋ฏธ๋ฆฌ ์ ์ธ ํ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ฑ๋ฅ์ด ํฅ์๋จ
// ์บ์ฑ ์
for (var i=0; i<100; i++) {
document.getElementById("test").style.left = i + "px";
}
// ์บ์ฑ ํ์ฉ ํ
var obj = document.getElementById("test");
for (var i=0; i<100; i++) {
obj.style.left = i + "px";
}
๊ธฐํ
1) jquery ๊ฐ์ฒด๋ฅผ ์บ์ฑํ ์ฝ๋๋ณด๋ค ์ง์ DOM์ ์ฌ์ฉํ๋ ์ฝ๋๊ฐ ํจ์ฌ ๋น ๋ฅด๋ค.
2) ์์๋ฅผ ์ฐพ์๋๋ id๋ฅผ ์ฌ์ฉํ๋๊ฒ์ด ์ข๋ค. class๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ณด๋ค id๋ฅผ ํตํด ์ ๊ทผํ๋๊ฒ ๋ ๋น ๋ฅด๋ค.
'์น ์ฝ๋ฉ > javascrip' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๋ฐ์คํฌ๋ฆฝํธ ์ฑ๋ฅ ์ต์ ํ #1 : ์ฝ๋ ์คํ์ผ (0) | 2017.03.21 |
---|---|
๋ธ๋ผ์ฐ์ ๋ ๋๋ง - ๋ฆฌํ๋ก์ฐ(Reflow)์ ๋ฆฌํ์ธํธ(Repaint) (0) | 2017.03.21 |
์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ณธ ๋ฌธ๋ฒ ์ ๋ฆฌ (0) | 2017.03.21 |
์ดํํฐ๋ธ ์๋ฐ์คํฌ๋ฆฝํธ (๋ฐ์ด๋น๋ ํ๋จผ) (0) | 2015.08.26 |
[์๋ฐ์คํฌ๋ฆฝํธ] ์๋ฃ๊ตฌ์กฐ ๋ชจ์ (0) | 2015.08.26 |
- Total
- Today
- Yesterday
- W3Schools (W3์ค์ฟจ)
- ์ํ์ฝ๋ฉ
- ์จ์๋ก๊ทธ
- ์น์ ์ฌ๋ํ๋ ์ฌ๋๋ค
- ์์ฏ๋ท์ปด
- Create a new fiddle - JSFiddle
- ThemeForest
- dribbble(๋์์ธ๊ด๋ จ)
- XDSoft plugins(์ ์ด์ฟผ๋ฆฌ ํ๋ฌ๊ทธ์ธ์์ค)
- Free jQuery Plugins and Tutori…
- comfytube: relax (์ฌ์ฆ์์ )
- ์ข์ถฉ์ฐ๋ ์นํผ๋ธ๋ฆฌ์ ์ผ๊ธฐ
- Sensio Arbor
- ์น๋์์ธ ํฌํ ์ต
- ๊ทธ๋ ๊ณ ๊ทธ๋ฐ ์ด์ผ๊ธฐ
- ๊ณต๊ตฐ ๊ณต๊ฐ
- Itnamu์ ํผ์๋๊ธฐ
- ์นํผ๋ธ๋ฆฌ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ&HTML
- ํด๋ฆฌ์ค
- ํ ์คํธ์์์ฒดํฌ
- ์กฐํ๋ก๋ฉ
- ์นดํ24์ผํ๋ชฐ
- ์ ๋ ํธ๋ฐ์ค์ฒดํฌ
- ์ ์ด์ฟผ๋ฆฌ ๋ก๋ฉ
- jquery๋ก๋ฉ
- ์ด๋ฐ๋์ผ์ด
- ๋ก๋ฉ์ด๋ฏธ์ง
- ์นดํ24 ๋ชจ๋ฐ์ผ
- ์นดํ24๋ชจ๋ฐ์ผ
- Ajax
- Ajax๋ก๋ฉ
- ๋ฅํฐ์ง
- ์นดํ24๋ชจ๋ฐ์ผ์นดํ
- 6์ ์ธ์ผ
- ๊ตฌ๊ธ์ง๋
- Mac
- ์ฌ๋ฆฌ๋ธ์
- ๋ผ๋์ค๋ฒํผ์ฒดํฌ
- ์นดํ24 ์คํจ
- ์ฌ๋ฆฌ๋ธ์ 6์ ์ธ์ผ
- ์นดํ24์ผํ๋ชฐ ์คํจ
- ์นดํ24์ผํ๋ชฐ๋ชจ๋ฐ์ผ
- ์ฌ๋ฆฌ๋ธ์ ์ธ์ผ
- ์นดํ24
- ์นดํ24์ผํ๋ชฐ ๋ชจ๋ฐ์ผ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |