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更安全(考虑一下当某件事情需要比该时间间隔更长的时间来完成调用时会发生什么情况)。不过,在这种情况下,你是对的,它没有任何帮助。嗨,我一直在试图找到一种结构来完成这一切。我正在考虑使用一个网络工作者,当有更新时,将消息发送回。那个网络工作者会回忆起自己。“老实说,我正在努力找到一种方法来做到这一点。”保罗说。没错,但这一切都取决于定期调用函数还是在两次调用之间等待最短时间更为重要。但是,您确实回答了我最初的问题:)如果系统允许,我将“勾选”这个选项。我应该把我的要求作为一个单独的问题发布吗?