requestAnimationFrame 时间戳限制
requestAnimationFrame timestamp limit
我正在尝试根据 requestAnimationFrame 编写一个基本的游戏循环。 requestAnimationFrame 的回调是通过时间戳参数传递的,据我所知,这是自页面加载以来的毫秒数。在构建游戏循环时,我假设每次调用 requestAnimationFrame 时,时间戳值总是上升,基于此我可以计算帧之间的时间增量。我唯一担心的是,如果应用程序 运行 很长一段时间,这个时间戳值将在某个时候达到它的限制。
有这样的限制吗?发生这种情况需要经过多少现实世界的时间?达到限制后时间戳值会发生什么变化?
我不认为自页面加载后 returns 毫秒,它 returns 一个 DOMHighResTimeStamp
"when requestAnimationFrame()
starts to execute callback functions".
The function to call when it's time to update your animation for the
next repaint. The callback function is passed one single argument, a
DOMHighResTimeStamp
similar to the one returned by
performance.now()
, indicating the point in time when
requestAnimationFrame()
starts to execute callback functions.
虽然这回避了问题,但我还要说我不会担心这种情况下的溢出,因为该单位是 double
,我很确定这意味着 64 位精度.花了 60 年才达到 year 2038 problem 并且精度为 32 位。我的数学可能不对,但我只是不担心溢出。当时间戳开始崩溃时,我们可能会遇到更大的问题。
别担心。
传递给 requestAnimationFrame 回调的是一个 DOMHighResTimestamp,实际上它的原点设置为 window ("the time when the browsing context is first created") 中的页面加载,实际上它表示从那时起的毫秒数。
根据 the specs,您有大约 285,616 年 才开始失去精度。
我正在尝试根据 requestAnimationFrame 编写一个基本的游戏循环。 requestAnimationFrame 的回调是通过时间戳参数传递的,据我所知,这是自页面加载以来的毫秒数。在构建游戏循环时,我假设每次调用 requestAnimationFrame 时,时间戳值总是上升,基于此我可以计算帧之间的时间增量。我唯一担心的是,如果应用程序 运行 很长一段时间,这个时间戳值将在某个时候达到它的限制。
有这样的限制吗?发生这种情况需要经过多少现实世界的时间?达到限制后时间戳值会发生什么变化?
我不认为自页面加载后 returns 毫秒,它 returns 一个 DOMHighResTimeStamp
"when requestAnimationFrame()
starts to execute callback functions".
The function to call when it's time to update your animation for the next repaint. The callback function is passed one single argument, a
DOMHighResTimeStamp
similar to the one returned byperformance.now()
, indicating the point in time whenrequestAnimationFrame()
starts to execute callback functions.
虽然这回避了问题,但我还要说我不会担心这种情况下的溢出,因为该单位是 double
,我很确定这意味着 64 位精度.花了 60 年才达到 year 2038 problem 并且精度为 32 位。我的数学可能不对,但我只是不担心溢出。当时间戳开始崩溃时,我们可能会遇到更大的问题。
别担心。
传递给 requestAnimationFrame 回调的是一个 DOMHighResTimestamp,实际上它的原点设置为 window ("the time when the browsing context is first created") 中的页面加载,实际上它表示从那时起的毫秒数。
根据 the specs,您有大约 285,616 年 才开始失去精度。