Ajax并发调用一个接一个地运行

Ajax Concurrent Call Running One after Another

本文关键字:一个 运行 并发 Ajax 调用      更新时间:2023-09-26

我已经编写了一个简单的网页,希望能够在其中执行并发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请求先完成,然后执行下一个请求。我希望每个呼叫都能并行处理。有什么线索可以告诉我如何获得它吗?

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

给定您的函数,如果我连续调用getData()十次,它将启动十个独立的HTTP请求。如果它们不是同时运行的,那么服务器可能一次不会回答多个请求,当然你对此无能为力。

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

这个功能是从网页内的按钮调用的,我需要可以让用户在任何时候调用这个功能

这是默认的AJAX行为。AJAX调用是安全的。

async: true

是冗余的,true是异步的默认值。

你的代码应该按照你在这个问题中所问的去做,如果你仍然遇到问题,问题可能在其他地方。

最后一点:

$.when()

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