Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
176
rated 0 times [  179] [ 3]  / answers: 1 / hits: 65397  / 13 Years ago, fri, september 2, 2011, 12:00:00

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);

More From » jquery

 Answers
31

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:



let intervalId = window.setInterval(...);


Then when you want to stop it, call



 window.clearInterval(intervalId);


In your case I'd suggest defining setScreen by itself, and not inside of the call to setInterval. This way you can just use intervalId = window.setInterval(setScreen, 2000) when you want to resume it.


[#90302] Wednesday, August 31, 2011, 13 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
judydestiniem

Total Points: 215
Total Questions: 109
Total Answers: 86

Location: Indonesia
Member since Wed, Jul 7, 2021
3 Years ago
;