【发布时间】:2016-07-21 05:03:08
【问题描述】:
我的实际用例是绘制一些东西(不是 html,而是在画布上渲染)以响应 mousemove 事件——这实际上归结为没有什么重要的事情要做,除非鼠标改变位置。
我看到 requestAnimationFrame 可以被认为是一种限制用户输入(例如 mousemove)的方法,我理解为什么它应该是这种方式以及为什么以这种方式使用它是一种代码味道如果 mousemove -> draw 不是代码的实际目的。
从 mousemove 处理程序中调用 requestAnimationFrame 有什么问题吗?
如果我不从 mousemove 处理程序调用 requestAnimationFrame 并且绘制速率实际上比用户输入循环慢(首选速率或它的工作原理),在这种情况下我是否仍能获得所需的节流?
【问题讨论】:
-
网上已经有很多例子了。您应该包含一些代码来向我们展示您的尝试。
-
"从 mousemove 处理程序中调用 requestAnimationFrame 有什么问题吗?" 是的!所有
requestAnimationFrame调用都将被堆叠并在下次屏幕刷新时执行(通常低于mousemove 的速率)。您需要使用将在 rAF 中关闭的布尔标志,但如果不需要,请不要在同一帧中调用多个 rAF。 -
@Kaiido 非常感谢,看来我不会走那条路了。
-
@PHPglue 我确实可以访问谷歌。如果我找到了有用的答案,我就不会问了。目标是在浪费时间编写大量不起作用的代码之前研究问题。
标签: javascript mousemove requestanimationframe