Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript轮询问题_Javascript - Fatal编程技术网

JavaScript轮询问题

JavaScript轮询问题,javascript,Javascript,当我单击“结束”时,它不会破坏setTimeout函数(缺少更好的词)。 您会注意到json文件被调用了6次 注意:我在代码中留下了一个console.log,向您展示了我提到的问题(因此请确保您打开了控制台) 要求:默认情况下,json文件应加载一次,然后在单击“开始”时,需要调用json文件(每x秒一次),直到单击“结束”(在这种情况下,轮询将停止)。查看页面中的代码,您似乎需要调用window.poller.completePoll(cfg)当您希望计时器停止时。这将清除下一个挂起的超时并

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

注意:我在代码中留下了一个console.log,向您展示了我提到的问题(因此请确保您打开了控制台)


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

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

您应该在单击“结束”链接时调用
completePoll()

仅供参考:
\u this.completePoll(cfg)setTimeout
中的code>with清除先前已执行的超时处理程序


此外,如果多次调用
startPoll
函数而未清除当前超时,则将创建另一个超时周期并覆盖以前的处理程序

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

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

感谢您的快速响应。在理论上,这应该是可行的;但是,如果您单击“结束”和“开始”几次,您将看到我提到的问题。单击“结束/开始”后,您将看到三倍的请求数:(我不确定您在问什么。您的代码没有调用completePoll()单击结束链接时。这允许多个计时器叠加。按照此代码的工作方式,您必须在启动新链接之前调用completePoll。您还必须防止多次单击开始。我省略了前面提到的代码(由Jose先生提供)。它现在很有魅力。您有没有其他语法建议?谢谢您的回答。我想您的解决方案可能已经解决了这个问题。代码现在看起来正确吗(如您所建议的)?