gpt4 book ai didi

javascript - 有没有 setTimeout(.., 0) 比 requestAnimationFrame() 更好的情况?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:25:46 24 4
gpt4 key购买 nike

我一直在使用 setTimeout(function(){ ... }, 0) 作为将函数调用延迟一次的方法。

通常,当我尝试直接操纵事件循环以确保事情按特定顺序执行时,我一直在使用这种方法,并且在大多数情况下,它与 UI 有关。

有时我能感觉到“滴答声”,尤其是当我使用它在元素上运行一些第 3 方 JS 库时。

但是我最近发现了requestAnimationFrame。这几乎可以实现相同的目的,但方式更优雅。

现在我很好奇,在任何情况下,使用 setTimeout(function(){ ... }, 0) 更有利>requestAnimationFrame(function(){ ... })?

最佳答案

它们不是一回事。

使用 setTimeout(fn, 0) 调用自身的函数将尽可能频繁地运行。

使用 requestAnimationFrame(fn) 调用自身的函数将针对每一帧调用一次——通常是每秒 60 次。顾名思义,它是为动画设计的,更新页面状态的频率超过它可以显示的频率是没有意义的。

关于javascript - 有没有 setTimeout(.., 0) 比 requestAnimationFrame() 更好的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44210204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com