javascript - Canvas requestAnimationFrame 可能出现 "ghost functions"

标签 javascript canvas

我正在使用 requestAnimationFrame(),我想,

假设我有一个函数

function draw(){
  ...
  ...
  requestAnimationFrame(draw);
}

现在假设我调用了 draw() 两次,

draw();
draw();

这是否意味着 2 个不同的循环将异步流动在一起? 这会导致 RAM 过载或类似情况吗?

最佳答案

requestAnimationFrame(callback) 将回调推送到动画帧堆栈中,这些动画帧将在下一次绘制事件循环迭代期间同时执行 (fifo)。
所以是的,您将运行两个不同的循环,但不是真正的异步。
对于 RAM 来说,函数不是问题,但是您在绘制中执行的操作将在原始中执行两次,而这很少是您想要的。
但拥有两个不同动画循环是正常的用例。

关于javascript - Canvas requestAnimationFrame 可能出现 "ghost functions",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58683933/

相关文章:

javascript - 返回 javascript 字符串中第一个空格之后的所有内容

javascript - 构建适用于不同屏幕尺寸的动态表格/div 网格

javascript - HTML5 Canvas 不显示文本

javascript - 具有内置图像对象的 Canvas 组件构造函数不显示图像

javascript - meteor react 内容过滤

javascript - meteor - 基于收藏值(value)的新行?

javascript - 如果另一个 div 仅使用 javascript 为空,如何将 innerHTML 添加到 div

javascript - 从一张 Canvas 复制带滤镜的图像并粘贴到另一张 Canvas

javascript - 如何优化动态加载 HTML5 游戏世界的 Canvas 渲染?

javascript - Fabricjs - 如何检测存在对象的 Canvas 的总宽度/高度