Javascript 当多个连接同时运行时,如何中止XHR连接?
我正在开发一个文件上传器,其中大约有10个文件通过for循环同时上传 现在我正在尝试创建一个取消按钮来取消所有上传,但是在我的当前代码中,只有最后一次上传才会取消 我已经包含了我的简化代码,但基本上它是一个循环,通过一个图像数组(attach),并为每个图像设置一个xhartach来发送图像。因此,假设10幅图像同时开始上传 如果按下取消按钮,我将运行命令xhrAttach.abort()但只有最后一个图像中止 有什么想法吗Javascript 当多个连接同时运行时,如何中止XHR连接?,javascript,xmlhttprequest,appcelerator,appcelerator-mobile,Javascript,Xmlhttprequest,Appcelerator,Appcelerator Mobile,我正在开发一个文件上传器,其中大约有10个文件通过for循环同时上传 现在我正在尝试创建一个取消按钮来取消所有上传,但是在我的当前代码中,只有最后一次上传才会取消 我已经包含了我的简化代码,但基本上它是一个循环,通过一个图像数组(attach),并为每个图像设置一个xhartach来发送图像。因此,假设10幅图像同时开始上传 如果按下取消按钮,我将运行命令xhrAttach.abort()但只有最后一个图像中止 有什么想法吗 for (var i=0;i<t
for (var i=0;i<theAttach.length;i++)
{
var xhrAttach = Ti.Network.createHTTPClient();
xhrAttach.timeout = 15000;
xhrAttach.onsendstream = function(e){
};
xhrAttach.onreadystatechange = function() {
if (xhrAttach.readyState != 4) return;
if ((i == theAttach.length) && (xhrAttach.readyState == 4))
{
}
};
xhrAttach.onerror = function() {
};
xhrAttach.open('POST', url, true);
xhrAttach.setRequestHeader('User-Agent', theuseragent());
xhrAttach.send(AttachmentTransmitArray);
}
for(var i=0;iCocco搞定了!他建议我将每个xhr缓存到一个容器数组中,因此我可以访问单个xhr并以这种方式中止它,即xhrAttach[i].abort()
我这样做了,效果非常好!谢谢cocco!有一个abort()方法。您需要将每个xhr缓存到一个数组中…然后使用类似Xhratch[I].abort()的内容循环遍历它们。在您的代码中,每次都覆盖Xhratch,这就是为什么您创建的最后一个Xhratch是唯一可以中止的方法。您能提供一个示例吗