JavaScript轮询问题

时间:2011-12-04 05:22:19

标签: javascript

当我点击“结束”时,它不会破坏(缺少更好的词)setTimeout功能。 您会注意到json文件被调用,有时会被调用6次

注意:我在代码中留下了一个console.log来向您展示我所说的问题(所以请确保您的控制台已打开)。

要求:默认情况下,json文件应加载一次,然后单击“开始”,需要调用json文件(每x秒),直到单击“结束”(在这种情况下)民意调查将停止。)

2 个答案:

答案 0 :(得分:1)

点击“结束”链接即可致电completePoll()

仅供参考:_this.completePoll(cfg);中的setTimeout清除已执行的先前超时处理程序。


此外,如果您多次调用startPoll函数,而不清除当前超时,则最终会创建另一个超时周期并覆盖前一个处理程序。

if(_this.setPolling){clearTimeout(_this.setPolling);_this.setPolling=0;}

startPoll函数的开头添加上面的行,这将终止正在运行的计时器。

答案 1 :(得分:0)

查看页面中的代码,当您希望计时器停止时,您似乎需要调用window.poller.completePoll(cfg)。这将清除下一个待处理的超时并导致它停止轮询。