多少个setinterval在好的实践中是太多了



我喜欢给我的网站添加一些效果(不是太多),但我通常有3-4个间隔。只是想知道有没有人知道我是否在拉伸障碍,或者如果我想要的话,我可以有更多的障碍?

我建议任何setinterval太大,您应该始终使用settimeout代替。这样做的原因是javascript是单线程的。这意味着,如果某些代码(可能是setinterval中的函数)阻塞了超时调用,setinterval将继续对该函数发出更多调用。如果间隔很短,这可能会导致函数调用堆积,导致极其难以发现/重现错误。

此处的最佳实践是在函数本身中使用settimeout。如果你之前有:
function foobar()
{
// do some stuff 
}
setInterval(foobar, 100)

应该改成:

function foobar()
{
//do some stuff
setTimeOut(foobar, 100)
}

这还有一个额外的好处,你可以添加一些逻辑来检查你是否真的想再次运行这个函数。

如果你害怕使用多个计时器,可以使用一个计时器,并在计时器倒数第n次时使效果触发。这取决于你想做什么

这实际上取决于每个操作执行所需的时间,以及每个操作之间的延迟。

你的浏览器会将这些调用排队,所以如果你担心会减慢用户的浏览体验(或不稳定的动画),你可以用一些相当简单的计时代码来检测你是否错过了期望的时间间隔。然后,您可以根据需要减少(或增加)显示的效果数量。