Nilai waktu aneh dalam callback requestAnimationFrame () [duplikat]
const prev = performance.now();
requestAnimationFrame(now => console.log(now - prev));
Mengapa now
selalu kurang dari prev
(setidaknya di cabang Chrome terakhir)?
Tangkapan layar:

Jawaban
Hal ini terjadi karena Anda meminta animasi antara frame saat ini dan pengecatan ulang berikutnya, tetapi sebenarnya Anda bisa melewatkan pemicu callback pertama dari frame saat ini yaitu saat timestamp
argumen dibuat.
Banyak panggilan ke panggilan requestAnimationFrame
balik dapat terjadi dalam rentang waktu ini, tetapi semuanya akan memiliki pemicu panggilan balik timestamp
pertama requestsAnimationFrame
dalam bingkai aktif yang mungkin terjadi sebelum panggilan Anda ke performance.now()
.
MDN juga menyatakan:
Fungsi callback diteruskan satu argumen tunggal, DOMHighResTimeStamp mirip dengan yang dikembalikan oleh performance.now (), yang menunjukkan titik waktu ketika requestAnimationFrame () mulai menjalankan fungsi callback .