javascript - requestAnimationFrame 在函数的开头或结尾?

标签 javascript requestanimationframe

如果我有一个像这样使用 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/

相关文章:

javascript - 切换按钮不起作用。没有显示 : none; at first click

javascript - 对于此 CSS 代码,我的网页没有上下移动?谁能告诉我这个问题?

javascript - requestAnimationFrame 是如何工作的?

javascript - d3 的过渡和动画是否使用 requestAnimationFrame?

javascript - 如何使 JQuery UI 布局插件在 Bootstrap body-content div 中工作

javascript - 根据滚动高度的 100% 修复标题

javascript - 将动态脚本注入(inject)到 Safari 扩展中的每个选项卡 onLoad

javascript - 如何使 requestAnimationFrame 方法模块化?

javascript - requestAnimationFrame 并知道浏览器何时重新绘制?

html - Firefox 中的 requestAnimationFrame 闪烁问题