Ajax并发呼叫一个接一个地运行

时间:2016-08-04 14:26:04

标签: javascript jquery ajax

我编写了一个简单的网页,希望能够执行并发的ajax请求。我知道我可以使用.when()在jquery中同时执行ajax请求,但这不完全是我的情况。我有以下功能:

 function getData(tt, tf) {
$.ajax({
    url : "/extpage.php",
    type : "POST",
    async: true, 
    data : {
        testt : tt,
        testf : tf
    }
})
.done(function (toolbox) {
    alert(data);
});

}

此功能是从网页内的按钮调用的,我需要能够让用户随时调用此功能(我知道浏览器可以支持的最大ajax请求数)无需等待先前的ajax请求先完成然后再执行下一个请求。我希望每个呼叫都能并行处理。关于我如何获得它的任何线索?

2 个答案:

答案 0 :(得分:2)

这就是AJAX本身的工作方式。您执行的每个调用都独立于任何其他浏览器活动(通常包括其他AJAX调用)运行。

鉴于您拥有的功能,如果我连续十次调用getData(),它将启动十个独立的HTTP请求。如果他们没有同时运行,服务器可能无法一次回答多个请求,当然您无法做任何事情。

答案 1 :(得分:0)

我认为你可能需要修改你的问题。

  

此功能是从网页内的按钮调用的,我需要   能够让用户随时调用此功能

这是默认的AJAX行为。 AJAX调用是反向的。

async: true

是多余的,true是async的默认值。

如果您仍然遇到问题,您的代码应该按照您在此问题中提出的要求进行操作。

最后一点:

$.when()

用于排队其他并发/异步任务,与您在OP中建议的相反。