【问题标题】:Why is the timestamp passed to requestAnimationFrame in Chrome sometimes in the past?为什么过去有时会在 Chrome 中将时间戳传递给 requestAnimationFrame?
【发布时间】:2017-05-13 02:44:48
【问题描述】:

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

我的测试用例:我首先使用performance.now()得到一个时间戳t0,然后请求一个动画帧,最后比较传递给t0的回调的时间戳t1https://jsfiddle.net/cy45gdan/3/

t1 发生在t0 之前有什么意义? Chrome 是否正在为正在进行的帧调用我的回调并超过该帧开始的时间?

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

【问题讨论】:

    标签: javascript google-chrome rendering


    【解决方案1】:

    DOMHighResTimeStamponload,而不是在调用 requestAnimationFrame 时。

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

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

    【讨论】:

      猜你喜欢
      • 2020-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 2011-06-11
      • 2015-01-24
      • 2017-04-19
      • 1970-01-01
      相关资源
      最近更新 更多