js定时器做的确实不太好用,不像java之类那么容易控制。
js延时函数主要有两个setInterval()与settimeout(),当需要连续调用时,settimeout 有时并不太使用,比如用document.write()在页面每隔一秒输出一次,一共输出10次,则该方法会在10秒后将所有数据一次性输出,这就不能符合预想。
而setInterval()会不停地执行,在外部难以控制,比如执行10次后停止,外部函数不能同步监视它的执行次数,此时可以用它自己监视,例如
var inter=setInterval(function(){stop++;te(); if(stop==10) clearInterval(inter); },800);
te是外部函数,setInterval在执行10次后会自己停止执行。需要注意的是clearInterval()方法并不会像return语句那样直接结束函数执行,该方法执行后,后面的语句仍然会执行,若想要像return一样,可以写为:
</pre><p><pre name="code" class="html">var inter=setInterval(function(){stop++; if(stop==10) clearInterval(inter);else {
te();
}
},800);