如何每5秒重复一次doSomething()
功能。
我还需要能够停止这样做的代码。
动态编码可以调整频率。
答案 0 :(得分:34)
setTimeout()只会启动一次命令。在这种情况下,setInterval()是你的朋友。
var iFrequency = 5000; // expressed in miliseconds
var myInterval = 0;
// STARTS and Resets the loop if any
function startLoop() {
if(myInterval > 0) clearInterval(myInterval); // stop
myInterval = setInterval( "doSomething()", iFrequency ); // run
}
function doSomething()
{
// (do something here)
}
来自代码...
<input type="button" onclick="iFrequency+=1000; startLoop(); return false;"
value="Add 1 second more to the interval" />
答案 1 :(得分:7)
使用
<强> setInterval 强>
使用a重复调用函数 每次通话之间的固定时间延迟 那个功能。
重复行动和
<强> clearInterval 强>
取消已设定的重复操作 使用setInterval()。
停止
答案 2 :(得分:0)
您可以使用setTimeout()来实现此目的。
答案 3 :(得分:0)
<script type="text/javascript">
var t; var timer_is_on=0; var timeout=5000;
function timedCount() {
doSomeThing();
t = setTimeout("timedCount()",timeout);
}
function doTimer() {
if (!timer_is_on) {
timer_is_on=1;
timedCount();
}
}
function stopCount() {
clearTimeout(t);
timer_is_on=0;
}
function changeFreq() {
timeout = 2000;
}
</script>