Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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 clearTimeout是否会中止aysnc XMLHttpRequest?_Javascript_Timer_Xmlhttprequest - Fatal编程技术网

Javascript clearTimeout是否会中止aysnc XMLHttpRequest?

Javascript clearTimeout是否会中止aysnc XMLHttpRequest?,javascript,timer,xmlhttprequest,Javascript,Timer,Xmlhttprequest,我递归调用一个函数,在该函数中,我从服务器请求更新信息 这是调用函数: function StartFeedUp() { GetNextImage(); if (tmrStartFeedUp) window.clearTimeout(tmrStartFeedUp); tmrStartFeedUp = setTimeout(StartFeedUp, 100); } 这是正在调用的函数: var urlTS =

我递归调用一个函数,在该函数中,我从服务器请求更新信息

这是调用函数:

    function StartFeedUp() {
        GetNextImage();
        if (tmrStartFeedUp) window.clearTimeout(tmrStartFeedUp);
        tmrStartFeedUp = setTimeout(StartFeedUp, 100);
    }
这是正在调用的函数:

            var urlTS = '/Cloud/isNewFrames.ashx?alias=' + alias + '&version=' + version + '&guidlogon=' + guidlogon;
            var xmlhttp = new XMLHttpRequest();
            xmlhttp.open("POST", urlTS, true);
            xmlhttp.send();
            var nextts = xmlhttp.responseText;
            //do something with info

当达到100ms的时间限制时,XMLHttpRequest是否被中止,或者我是否应该在rest调用中使用超时?

clearTimeout
将阻止再次调用该函数。它不应阻止在内部采取任何行动。话虽如此,
clearTimeout
在您的情况下似乎不是很有用。看起来您将
setTimeout
调用一个接一个地链接起来,在这种情况下,
clearTimeout
是无用的,因为当您输入函数时,超时已经被清除


在您的情况下,我建议使用
setInterval
而不是
setTimeout
,并调用
clearInterval
来中断函数调用。

NO,setTimeout与Ajax调用无关
nextts
很可能是未定义的,因为只要调用
xmlhttp.send()
,您的
xmlhttp
已与其他人失去联系-感谢您提供的信息。这非常有帮助。setTimeout链比setInterval更安全(考虑一下当某件事情需要比该时间间隔更长的时间来完成调用时会发生什么情况)。不过,在这种情况下,你是对的,它没有任何帮助。嗨,我一直在试图找到一种结构来完成这一切。我正在考虑使用一个网络工作者,当有更新时,将消息发送回。那个网络工作者会回忆起自己。“老实说,我正在努力找到一种方法来做到这一点。”保罗说。没错,但这一切都取决于定期调用函数还是在两次调用之间等待最短时间更为重要。但是,您确实回答了我最初的问题:)如果系统允许,我将“勾选”这个选项。我应该把我的要求作为一个单独的问题发布吗?