我编写了一个简单的网页,希望能够执行并发的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请求先完成然后再执行下一个请求。我希望每个呼叫都能并行处理。关于我如何获得它的任何线索?
答案 0 :(得分:2)
这就是AJAX本身的工作方式。您执行的每个调用都独立于任何其他浏览器活动(通常包括其他AJAX调用)运行。
鉴于您拥有的功能,如果我连续十次调用getData()
,它将启动十个独立的HTTP请求。如果他们没有同时运行,服务器可能无法一次回答多个请求,当然您无法做任何事情。
答案 1 :(得分:0)
我认为你可能需要修改你的问题。
此功能是从网页内的按钮调用的,我需要 能够让用户随时调用此功能
这是默认的AJAX行为。 AJAX调用是反向的。
async: true
是多余的,true是async的默认值。
如果您仍然遇到问题,您的代码应该按照您在此问题中提出的要求进行操作。
最后一点:
$.when()
用于排队其他并发/异步任务,与您在OP中建议的相反。