Rendering process
1. 브라우저는 CSSOM과 DOM트리를 결합해 렌더 트리를 생성
2. 화면에 출력할 Layout 계산
3. Paint (실제 화면에 픽셀을 그리는 단계)
4. 필요에 따라 reflow, repaint
reflow
기존 DOM노드의 width, height 변경시, 관련된 모든 노드의 수치를 다시 계산해서 render tree 재구성
repaint
reflow로 render tree가 재구성되면 render tree를 다시 그리는 작업
숫자와 상관없는 스타일 변경시에는 repaint만 실행됨
reflow, repaint는 부하가 높기때문에 신중히 사용
배열, 객체 생성시 성능향상 Tip
|
빠름 |
|
배열 생성 |
var arr = []; |
var arr = new Array(); |
배열 초기화 |
arr[i] = i; |
arr.push(i); |
객체 생성 |
var obj = {} |
var obj = new Object(); |
객체 초기화 |
obj.a = 1; |
obj["a"] = 1; |
문자열 생성 | var str = "test"; | var str = new String("test"); |
반복문 사용시 성능향상 Tip
반복문 사용시 for-in 은 순차적 탐색이 아닌, 반복 시점마다 객체의 모든 속성을 무작위 탐색하기 때문에 사용 지양
반복문 사용시 for 안에 array.length 사용하게 되면 반복시점마다 array.length 실행되기 때문에 사전에 변수에 담아서 사용
반복되는 객체사용시 별도의 변수에 담아서 사용
'Javascript' 카테고리의 다른 글
jQuery - form / ajax / json sample (0) | 2016.08.31 |
---|---|
jQuery -event.stopPropagation / event.preventDefault (0) | 2016.08.31 |
WRITTEN BY