requestAnimationFrame () 콜백의 이상한 시간 값 [중복]

Dec 05 2020

const prev = performance.now();
requestAnimationFrame(now => console.log(now - prev));

now항상 prev(적어도 마지막 Chrome 브랜치에서는) 보다 작 습니까?

스크린 샷 :

답변

1 MichalisGarganourakis Dec 05 2020 at 06:41

이것은 현재 프레임과 다음 다시 그리기 사이에 애니메이션을 요청했지만 실제로 timestamp인수가 설정 되었을 때 현재 프레임의 첫 번째 콜백 트리거를 놓쳤을 수 있기 때문에 발생합니다 .

requestAnimationFrame이 시간 동안 콜백에 대한 많은 호출 이 발생할 수 있지만 모든 호출 에는를 호출하기 전에 발생했을 수있는 활성 프레임에서 timestamp첫 번째 requestsAnimationFrame콜백 트리거가 있습니다 performance.now().

MDN 은 또한 다음과 같이 말합니다.

콜백 함수에는 performance.now ()에서 반환 된 것과 유사한 DOMHighResTimeStamp 인 단일 인수가 전달되며 이는 requestAnimationFrame () 콜백 함수 실행을 시작 하는 시점을 나타냅니다 .