当我点击“结束”时,它不会破坏(缺少更好的词)setTimeout
功能。
您会注意到json文件被调用,有时会被调用6次
注意:我在代码中留下了一个console.log来向您展示我所说的问题(所以请确保您的控制台已打开)。
要求:默认情况下,json文件应加载一次,然后单击“开始”,需要调用json文件(每x秒),直到单击“结束”(在这种情况下)民意调查将停止。)
答案 0 :(得分:1)
点击“结束”链接即可致电completePoll()
。
仅供参考:_this.completePoll(cfg);
中的setTimeout
清除已执行的先前超时处理程序。
此外,如果您多次调用startPoll
函数,而不清除当前超时,则最终会创建另一个超时周期并覆盖前一个处理程序。
if(_this.setPolling){clearTimeout(_this.setPolling);_this.setPolling=0;}
在startPoll
函数的开头添加上面的行,这将终止正在运行的计时器。
答案 1 :(得分:0)
查看页面中的代码,当您希望计时器停止时,您似乎需要调用window.poller.completePoll(cfg)
。这将清除下一个待处理的超时并导致它停止轮询。