JavaScript中setTimeout实现轮询 (vs setInterval)
setTimeout(表达式,延时时间)在执行时,是在载入后延迟指定时间后,去执行一次表达式,次数是一次。
setInterval(表达式,交互时间)则不一样,它从载入后,每隔指定的时间就执行一次表达式。
如果指定循环次数,每次间隔一定时间,可以用setTimeout
1: function f(){
2: //Do something here...
3: };
4:
5: for(var i = 1; i < 13; i++){
6: setTimeout(f, 1000);
7: }
8:
如果希望每隔指定的时间就执行一次表达式,但无限制循环 - 轮询(直到某个条件满足,跳出)。可以在表达式内再次触发setTimeout从而形成周而复始的定时效果。
1: function f(){
2: if(myCondition) //跳出循环的条件
3: {
4: //Do something here...
5: setTimeout(f, 1000); //循环调用触发setTimeout
6: };
7:
8: setTimeout(f, 1000);
或许您对以下相关文章有兴趣: