为什么过去有时会将时间戳传递给Chrome中的requestAnimationFrame?

时间:2017-05-13 02:44:49

标签: javascript google-chrome rendering

Chrome有时会将时间戳传递到requestAnimationFrame(" rAF")回调> 调用时间rAF之前。怎么可能?

我的测试用例:我首先使用t0获取时间戳performance.now(),然后请求动画帧,最后将传递给回调的时间戳t1t0进行比较:https://jsfiddle.net/cy45gdan/3/

t1之前t0如何发生才有意义? Chrome是否正在为正在进行的帧调用我的回调并传递帧开始的时间?

Firefox和Safari似乎只将时间戳传递到调用rAF之后的rAF回调中。

1 个答案:

答案 0 :(得分:0)

DOMHighResTimeStamp被设置为加载,而不是在调用requestAnimationFrame时被设置。

使用您的代码(顺便说一句,做得很好),我在众多尝试中设法在Firefox中获得了两个(-)数字,而在Chrome上,我得到的大多是负数而只有几个正数。

这意味着有时浏览器在加载时间戳之前会运行代码,这将导致正数。我不知道波动的根本原因是什么,所以我什至都不会猜测。