Front/JS & jQuery

[js] requestAnimationFrame()의 내부 동작 원리

오선지♬ 2025. 6. 20. 19:18
728x90
반응형

✅ requestAnimationFrame()의 내부 동작 원리

📌 동작 순서

  1. JavaScript가 requestAnimationFrame(callback)을 호출하면,
  2. 브라우저는 다음 프레임을 렌더링하기 직전(callback을 큐에 넣기 전) 타이밍에,
  3. callback을 실행합니다.

브라우저는 보통 1초에 60번 화면을 그리므로(60fps), 대략 16.67ms마다 한 번씩 callback이 실행됩니다.

브라우저의 렌더링 루프와 동기화되어 DOM 변화나 애니메이션을 가장 자연스럽고 효율적으로 처리할 수 있게 합니다.


🧠 언제 실행되는가?

  • 화면이 활성 상태일 때만 실행됨
    → 탭이 비활성화되면 일시 중지됨 → CPU 낭비 X
  • 프레임 스케줄에 따라 자동으로 실행 타이밍이 조절됨 → setTimeout보다 정확한 타이밍

🧪 간단한 실험

js
 
const id = requestAnimationFrame(myCallback);

// 필요 시 취소
cancelAnimationFrame(id);
  • timestamp: 현재 프레임의 시작 시간 (ms)
  • 이 루프는 화면이 활성 상태일 때만 반복됨
728x90
반응형

'Front > JS & jQuery' 카테고리의 다른 글

[js] requestAnimationFrame()  (0) 2025.06.19
[js] requestAnimationFrame 함수  (0) 2025.06.18
[js] 구조분해할당 기본값 설정  (0) 2025.06.14
[js] 객체의 구조 분해 할당  (0) 2025.06.13
[js] 배열의 구조 분해 할당  (0) 2025.06.12