자바스크립트의 실행시간 = 렌더링 성능
레이아웃 : DOM 요소들이 화면에 어느 위치에 어떤 크기로 배치될 지 결정하는 계산 과정
📌 레이아웃을 최대한 적게하고 리페인트만 할 수 있도록
원래 레이아웃은 비동기이나 특정 상황에서 동기적으로 레이아웃 발생
offsetHeight
, offsetTop
과 같은 계산된 값을 읽을 때 레이아웃 스래싱 = 한 프레임 내에서 강제 동기 레이아웃이 연속적으로 발생
가능한 하위 노드의 DOM을 조작하고 스타일 변경
영향받는 엘리먼트 제한
display : none
-> 레이아웃 / 리페인드 ❌visibility : hidden
-> 공간을 차지하기 때문에 레이아웃 ⭕️ 리페인트 ❌트리 변경하면 렌더링을 유발
트리가 클수록 더 많은 계산 필요
한 프레임 처리가 16ms(60fps)로 완료
(자바스크립트 실행 시간 10ms)
브라우저의 프레임속도에 맞춰 애니메이션 실행이 가능하도록 해줌.
setinterval, settimeout과 달리 프레임 시작시 호출
페이지에 보이지 않을 땐 콜백 함수 실행x
position : absolute 처리
-> 주변에 영향을 주지 않게
transform 사용
-> 레이어로 분리돼 영향받는 엘리먼트가 제한되어 레이아웃과 페인트 감소 & 합성(composite)만 발생 => 렌더링 속도 증가
배워갑니다