How can I repeat a function doSomething() every 5 seconds.
I also need code that will make it stop doing it.
And code to on-the-fly adjust the frequency.
How can I repeat a function doSomething() every 5 seconds.
I also need code that will make it stop doing it.
And code to on-the-fly adjust the frequency.
setTimeout() will only launch the command once. In this case, setInterval() is your friend.
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)
}
from code...
<input type="button" onclick="iFrequency+=1000; startLoop(); return false;"
value="Add 1 second more to the interval" />
Use
Calls a function repeatedly, with a fixed time delay between each call to that function.
for repeated action and
Cancels repeated action which was set up using setInterval().
to stop that
<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>
var myInterval = setInterval ( doSomething, 5000 );
function doSomething ( )
{
alert("doing something")
}
And to remove it:
clearInterval(myInterval);