据我所知,这两个javascript的行为方式相同:
选项A:
function myTimeoutFunction()
{
doStuff();
setTimeout(myTimeoutFunction, 1000);
}
myTimeoutFunction();
选项B:
function myTimeoutFunction()
{
doStuff();
}
myTimeoutFunction();
setInterval(myTimeoutFunction, 1000);
使用setTimeout和setInterval之间有什么区别吗?
选项A和选项B看起来工作相同的原因主要是因为setInterval和setTimeout函数的位置不同。
function myTimeoutFunction()
{
doStuff();
setTimeout(myTimeoutFunction, 1000);
}
myTimeoutFunction();
这是一个递归函数,如果doStuff非常复杂,则setTimeout必须跟踪setTimout的所有调用以及当前的doStuff,这会使它变得更慢,而且速度更快。
function myTimeoutFunction()
{
doStuff();
}
myTimeoutFunction();
setInterval(myTimeoutFunction, 1000);
另一方面,setInterval只需要跟踪上一个setInterval和当前的doStuff,使其保持恒定的速度。
So which one should you use?
从上面的内容中,您应该能够得出结论,更好的方法是setInterval。