ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์„ฑ๋Šฅ ์ตœ์ ํ™” #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๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•˜๋Š”๊ฒŒ ๋” ๋น ๋ฅด๋‹ค.


๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
ยซ   2024/04   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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 29 30
๊ธ€ ๋ณด๊ด€ํ•จ