我一直認爲requestAnimationFrame使用的時間戳與JavaScript中的通常時間戳相同,即1970年1月1日以來的毫秒數。今天,我捕獲了時間戳以驗證並發現RAF時間戳可能是從頁面加載開始。時間戳的準確度是什麼?requestAnimationFrame:什麼是時間戳?
測試代碼:
<p id="output"></p>
var i = 0;
var start = null;
var times = [];
var dur = 5000;
function step(timestamp) {
if (start===null) start = timestamp;
times[i++] = timestamp;
if (timestamp-start<=dur) {
requestAnimationFrame(step);
} else {
document.getElementById('output').innerHTML = times.join('<br>');
}
}
requestAnimationFrame(step);
給出的結果是這樣的:
158.52126457412882
183.12243595205535
199.52116819316421
...
在所有RAF功能的瀏覽器
。
從[文檔](https://developer.mozilla.org/en-US/docs/Web/API/window.requestAnimationFrame):「該回調函數有一個參數,[DOMHighResTimeStamp'](https ://developer.mozilla.org/en-US/docs/Web/API/DOMHighResTimeStamp),它表示requestAnimationFrame開始觸發回調的當前時間。「 –