2011-10-07 46 views
3

我喜欢为我的网站添加效果(不是太多),但我通常有3-4个时间间隔。只是想知道是否有人知道我是否伸展障碍,或者如果我想要更多,我可以有更多?良好实践中有多少setIntervals太多?

+4

定义'effects'。如果它与90年代网站的“效果”相同,则1太多了。 – Omar

+2

那好,那取决于。他们每5分钟或每50毫秒触发一次吗? – Dennis

+0

笑jQuery的动画苗头和位置增量 –

回答

2

如果怕有多个计时器,使用1个定时器,使效果消防每隔N个时间计时器倒计时。这取决于你想要做什么。

+0

嘿,我喜欢这个主意。那得好一点。 –

1

这真的取决于每一个需要多长时间来执行,且每个之间的延迟。

您的浏览器会对这些调用进行排队,所以如果您担心放慢用户的浏览体验(或生涩动画),您可能会用一些相当简单的时间码检测您是否缺少所需的时间间隔。然后,您可以酌情减少(或增加)显示的效果数量。

5

我会建议任何setInterval的实在是太多了,你应该总是setTimeout的使用来代替。原因是JavaScript是单线程的。这意味着如果某些代码(可能是setinterval中的函数)阻塞超时调用,setinterval将继续向该函数发出更多调用。如果间隔时间很短,可能会导致函数调用堆栈,导致EXTREMELY很难找到/重现错误。

最佳这里的做法是将函数本身只是使用的setTimeout。所以,如果你以前有:

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

您应将其更改为:

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

这可以添加一点逻辑的好处在检查,如果你真的想运行函数再次。