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 () 이 콜백 함수 실행을 시작 하는 시점을 나타냅니다 .