Javascript 临时更改设置间隔的时间
Javascript 临时更改设置间隔的时间,javascript,setinterval,Javascript,Setinterval,setInterval中的定时值确定下次再次调用函数的时间。例如: t = 8000; myFunction(){ if (someCondition){ //halt setInterval //t = 5000; // setInterval(myFunction,t); } // do some logic } setInterval(myFunction, t); 问题是更改t不会影响我希望当前呼叫在下一次呼叫
setInterval
中的定时值确定下次再次调用函数的时间。例如:
t = 8000;
myFunction(){
if (someCondition){
//halt setInterval
//t = 5000;
// setInterval(myFunction,t);
}
// do some logic
}
setInterval(myFunction, t);
问题是更改
t
不会影响我希望当前呼叫在下一次呼叫之前保留的时间。换句话说,有没有办法停止setInterval
,然后我可以用新的时间重新设置它?您必须使用clearInterval()
您必须使用clearInterval()
如果您想做类似的事情,最好使用
setTimeout
进行自己的间隔控制
var shortInterval = 2000, longInterval = 4000;
function timerCode() {
// do something
if (whatever) {
setTimeout(timerCode, shortInterval);
}
else {
setTimeout(timerCode, longInterval);
}
}
setTimeout(timerCode, longInterval);
这样,在计时器的每次迭代中,您可以决定距离下一次迭代应该有多长时间。如果您想停止,只需根本不重置计时器。如果您想执行类似操作,最好使用
setTimeout
执行自己的间隔控制
var shortInterval = 2000, longInterval = 4000;
function timerCode() {
// do something
if (whatever) {
setTimeout(timerCode, shortInterval);
}
else {
setTimeout(timerCode, longInterval);
}
}
setTimeout(timerCode, longInterval);
这样,在计时器的每次迭代中,您可以决定距离下一次迭代应该有多长时间。如果你想停下来,只需完全不重置计时器。使用
clearInterval
取消旧计时器,然后使用setInterval
启动新计时器。您在timerid上调用clearInterval。使用clearInterval
取消旧计时器,然后使用setInterval
启动新计时器。您在timerid上调用clearInterval。为什么我自己的间歇时间比较好,因为它更灵活。没有真正的性能问题,也没有明显的代码问题。事实上,很多人建议永远不要使用setInterval
。为什么使用我自己的interval更好?@sєm sєm因为它更灵活。没有真正的性能问题,也没有明显的代码问题。事实上,很多人建议不要使用setInterval
。