在按钮点击我每3分钟的setTimeout执行多次
intervalId = setTimeout(function(){ searchSiteDetailViaAjax() }, 180000);
和停止按钮,我开始停止该
clearTimeout(intervalId);
intervalId = null;
它工作正常,但再经过几年时间后调用Ajax的功能执行clearTimeout计时器会一次又一次地调用Ajax函数。
在按钮点击我每3分钟的setTimeout执行多次
intervalId = setTimeout(function(){ searchSiteDetailViaAjax() }, 180000);
和停止按钮,我开始停止该
clearTimeout(intervalId);
intervalId = null;
它工作正常,但再经过几年时间后调用Ajax的功能执行clearTimeout计时器会一次又一次地调用Ajax函数。
这听起来像你想与setInterval()
和clearInterval()
一起工作。 setTimeout()
只运行一次,并且您说您希望每3分钟运行一次,并且您希望为此使用setInterval()
。
的setInterval MDN:https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval
clearInterval MDN:https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval
听起来像是你可能需要调用clearTimeout(intervalId);
在点击之前,您setTimeout
电话。
听起来好像发生了什么,你排队一个函数来执行,再次点击按钮,你排队另一个执行,并接收不同的句柄。单击停止按钮将不再能够清除导致多次执行的以前的手柄。
感谢一声。它按预期工作。 –
别忘了给我我的道具!哈哈。很高兴我能帮上忙 –
这里没有足够的信息。你在'intervalId'中定义了什么范围?添加更多代码。 –
你能发布更多信息吗?代码示例? –
intervalId的范围是全局的。 –