javascript - 使用 setTimeout 与比较更新循环上的时间戳

标签 javascript performance time

使用 Javascript,在使用更新函数的应用程序中,该函数针对每个渲染帧运行并寻求每一个最微小的优化:

如果想要经常运行代码并且时间的精度大多不重要,那么在使用 setTimeout 循环或仅在应用程序的更新函数中构建一个计时器之间是否有明智的选择?

例如,setTimeout 是否存在一些意外的计算成本,导致其速度明显变慢?或者,另一方面,setTimeout 是否会对应用程序产生积极影响,因为 Javascript 并不急于发生 setTimeout 回调?

最佳答案

使用时间戳差异比 setTimeout 更好,但您仍然需要渲染循环。因此,您可以使用 requestAnimationFrame 的时间戳差异作为参数发送给回调函数。

我希望这能回答您的问题。

另请记住(正如您提到的),setTimeout被推迟到堆栈调用的末尾。这就是为什么在 node.js 中你有其他“延迟”函数的方法,并且你还有一种更快的方法来使用 process.hrtime 来计算时间戳差异。而不必使用 Date对象。

长答案短是:

Use the parameter sent by requestAnimationFrame to the callback.

关于javascript - 使用 setTimeout 与比较更新循环上的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30522779/

相关文章:

javascript - Owl Carousel : How to put navigation on image and not under?

C - 有一个简单的循环来进行算术计算;探查器显示这是一个瓶颈。如何加快速度?

sql - 如何获取每个设备的第一个和最后一个元素?

java - 使用 SimpleDateFormat 在 Java 中无法解析时间

php - 元素未从 DOM 中删除

javascript - 如何在页面左侧添加背景色?

mysql - 索引的 DO 和 DONT

PHP 时间变量在 while 循环中不起作用

c# - 解析时间、日期/时间或日期

javascript - 复选框已选中 显示按钮