我有一个每2000毫秒调用一次的javascript函数。我想停止此操作,以便我可以让用户在页面上执行其他操作,而无需再次调用它。这可能吗?这是每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);
没有内置的“暂停”功能,但是您可以停止它,然后使用相同的功能开始一个新的间隔。
首先,您需要捕获调用所返回的ID setInterval:
setInterval
let intervalId = window.setInterval(...);
然后,当您要停止它时,请致电
window.clearInterval(intervalId);
在您的情况下,建议您自己定义setScreen,而不是在的内部进行定义setInterval。这样,您可以intervalId = window.setInterval(setScreen, 2000)在需要恢复时使用它。
setScreen
intervalId = window.setInterval(setScreen, 2000)