I have a javascript function that is called every 2000ms. I want to stop this so I can have the user do other things on the page without it being called again. Is this possible? Here is the function that gets called every 2000ms:
window.setInterval(function getScreen (sid) {
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("refresh").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","getScreen.php?sid="+<?php echo $sid; ?>,true);
xmlhttp.send();
},2000);
There’s no built-in “pause” function, but you can stop it, and then start a new interval with the same function.
First, you need to capture the id returned by the call to
setInterval:Then when you want to stop it, call
In your case I’d suggest defining
setScreenby itself, and not inside of the call tosetInterval. This way you can just useintervalId = window.setInterval(setScreen, 2000)when you want to resume it.