gpt4 book ai didi

javascript - setTimeout 与 setInterval - 使用的最佳实践

转载 作者:行者123 更新时间:2023-11-30 17:11:28 25 4
gpt4 key购买 nike

我理解 setTimeout 和 setInterval 之间的区别,如 this解释得很好。

这个问题是关于使用定时器时的最佳实践,特别是 setTimeout 与 setInterval。

如果我需要在游戏中相当频繁地多次调用倒计时(例如,玩家移动到新位置,这会触发新的倒计时,这将鼓励他们在 5 秒 ),但它不一定是统一的间隔(意思是,它们应该移动到下一个位置,但可以在当前位置闲逛并受到惩罚),它在性能方面是否更好,并且在代码方面是否更清晰:

a) 当玩家决定改变位置时继续清除和设置setTimeout()

if (player.newLocation !== player.oldLocation) { //player location has changed
window.clearTimeout(myTimer);
myTimer = setTimeout(function() {
do something
},50);
}

b) 保持 setInterval 运行,但每次玩家移动到新位置时更改一个充当倒计时的变量

var counter = 0;
if (player.newLocation !== player.oldLocation) {
counter = 100;
}

myTimer = setInterval(function() {
if (counter > 0) {
// do something...
counter--;
}
},50);

最佳答案

is it better performance-wise

在不需要时不保留计时器肯定更好。无论它们是通过 setTimeout 还是 setInterval 实现的。

and clean code-wise

这取决于“玩家决定更改位置”的方式(通常),以及如何向您的代码发送信号。它可能会在行为上产生实际差异,您应该致力于保持代码正确 - 独立于输入的顺序和时间。保持简单,并选择您需要的内容。

关于javascript - setTimeout 与 setInterval - 使用的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26916368/

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