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:
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.
If you are using jQuery I would recommend the plugin jQuery Timer
var timer = $.timer(function() {   alert('This message was sent by a timer.'); }, 2000, true);   Then you can easily pause the timer:
timer.pause();   And also resume it:
timer.play(); 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With