mcerveni Posted October 12, 2009 Share Posted October 12, 2009 I need to clearInterval, and instead it keeps looping. Any reason why?? code below. function requestforbreak(id,name) { requestbreak(id,name); empid=id; interval = setInterval("checkforbreaks();",1000); } function requestbreak(id,name){ http.open('get', '../../queuecenter/include/requestBreak.php?empID='+id+'&agentName='+name); http.onreadystatechange = function(){ if(http.readyState == 4){ var response = http.responseText; document.getElementById('breakreqmsg').innerHTML = ' ' +response+ ''; } } http.send(null); } function checkforbreaks(){ http.open('get', '../../queuecenter/include/breakPending.php?empID='+empid); http.onreadystatechange = function(){ if(http.readyState == 4){ var response = http.responseText; if(response == 'false'){ clearInterval(interval); document.getElementById('breakreqmsg').innerHTML ='Done'; } document.getElementById('breakreqmsg').innerHTML = ' ' +response+ ''; } } http.send(null); } Quote Link to comment Share on other sites More sharing options...
kickstart Posted October 12, 2009 Share Posted October 12, 2009 Hi Can't see anything obvious (I presume the scope of interval is appropriate). Only thing I can think of is that if breakPending.php takes a while to return then you could have numerous requests which will return and trigger the onreadystatechange (and continue to do so even if you have cancelled the timer, just no fresh ones will be set up). All the best Keith Quote Link to comment Share on other sites More sharing options...
GKWelding Posted October 12, 2009 Share Posted October 12, 2009 Try the following. <script type="text/javascript"> function requestforbreak(id,name) { requestbreak(id,name); empid=id; interval = window.setInterval("checkforbreaks();",1000); } function requestbreak(id,name){ http.open('get', '../../queuecenter/include/requestBreak.php?empID='+id+'&agentName='+name); http.onreadystatechange = function(){ if(http.readyState == 4){ var response = http.responseText; document.getElementById('breakreqmsg').innerHTML = ' ' +response+ ''; } } http.send(null); } function checkforbreaks(){ http.open('get', '../../queuecenter/include/breakPending.php?empID='+empid); http.onreadystatechange = function(){ if(http.readyState == 4){ var response = http.responseText; if(response == 'false'){ window.clearInterval(interval); document.getElementById('breakreqmsg').innerHTML ='Done'; } document.getElementById('breakreqmsg').innerHTML = ' ' +response+ ''; } } http.send(null); } </script> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.