Chrome有时会将时间戳传递到requestAnimationFrame
(" rAF
")回调>> 调用时间rAF
之前。怎么可能?
我的测试用例:我首先使用t0
获取时间戳performance.now()
,然后请求动画帧,最后将传递给回调的时间戳t1
与t0
进行比较:https://jsfiddle.net/cy45gdan/3/
在t1
之前t0
如何发生才有意义? Chrome是否正在为正在进行的帧调用我的回调并传递帧开始的时间?
Firefox和Safari似乎只将时间戳传递到调用rAF
之后的rAF
回调中。
答案 0 :(得分:0)
DOMHighResTimeStamp
被设置为加载,而不是在调用requestAnimationFrame
时被设置。
使用您的代码(顺便说一句,做得很好),我在众多尝试中设法在Firefox中获得了两个(-)数字,而在Chrome上,我得到的大多是负数而只有几个正数。>
这意味着有时浏览器在加载时间戳之前会运行代码,这将导致正数。我不知道波动的根本原因是什么,所以我什至都不会猜测。