传递给 requestAnimationFrame 调用的回调的时间错误

wrong time passed to callback called by requestAnimationFrame

我正在使用一个简单的 requestAnimationFrame 循环,它在 DOM 创建后立即开始。 我需要使用传递给回调的时间参数,但我注意到在前几帧中时间是错误的。这是我在 firefox 上 运行 这段代码时发生的情况:

function loop(time) {

    console.log(time);

    // do something with time to animate the canvas 

    requestAnimationFrame(loop);
}

requestAnimationFrame(loop);

我可以用一个简单的条件跳过前 3 个帧,但为什么会这样?

这是 Firefox bug,这是因为他们在 will-navigate 状态下清除控制台,而不是在 navigated 状态下清除控制台。

因此,确实,您可能会在下一个会话中保留在这两种状态之间确实发生的日志,但这只是在控制台中,您的代码不会看到这些。