如果我有一个像这样使用 requestAnimationFrame 的循环:
function render() {
// Rendering code
requestAnimationFrame(render);
}
如果我把requestAnimationFrame
放在函数的开头会有什么不同吗,像这样:
function render() {
requestAnimationFrame(render);
// Rendering code
}
我没有注意到任何区别,但我已经看到了这两种实现方式,其中一种在任何方面都更好,还是相同?
编辑: 我想到的一件事是,如果我把它放在开头,并且渲染代码需要很长时间才能运行,比如 10 毫秒,那么把它放在最后不会使帧速率下降 10 毫秒吗?
最佳答案
requestAnimationFrame
总是异步调用它的回调,所以只要您的渲染代码是同步的并且不抛出异常,它就没有任何区别。
这本质上是一种风格选择,您自己选择哪种方法更干净。将它放在顶部可能会强调 render
正在调度自身,即使在渲染中存在错误时也会这样做。将它放在底部可以有条件地跳出渲染循环(例如,当您想暂停游戏时)。
关于javascript - requestAnimationFrame 在函数的开头或结尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38229386/