Javascript jQuery-Ajax异步不工作?
我在jQuery中有一个简单的Ajax调用,如下所示Javascript jQuery-Ajax异步不工作?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我在jQuery中有一个简单的Ajax调用,如下所示 function my_call(identifier) { var settings = { "async": true, "crossDomain": true, "url": "http://www.example.com/?" + identifier, "method": "GET", "headers": { "Acc
function my_call(identifier) {
var settings = {
"async": true,
"crossDomain": true,
"url": "http://www.example.com/?" + identifier,
"method": "GET",
"headers": {
"Accept": "application/json",
},
"processData": false,
"contentType": false,
"dataType" : "json",
"mimeType": "multipart/form-data",
}
$.ajax(settings).done(function (response) {
console.log(response);
});
}
my_call(1);
my_call(2);
my_call(3);
my_call(4);
my_call(5);
对于不同的标识符,我会调用它10次,就像这样
function my_call(identifier) {
var settings = {
"async": true,
"crossDomain": true,
"url": "http://www.example.com/?" + identifier,
"method": "GET",
"headers": {
"Accept": "application/json",
},
"processData": false,
"contentType": false,
"dataType" : "json",
"mimeType": "multipart/form-data",
}
$.ajax(settings).done(function (response) {
console.log(response);
});
}
my_call(1);
my_call(2);
my_call(3);
my_call(4);
my_call(5);
我已经将async设置为true,因此假设这些调用将同时发生,但是我似乎将结果一个接一个地打印到控制台,中间有一点延迟
我是否正确地执行了该操作,或者是否有其他方法调用该函数?我试图减少返回结果所需的时间。AJAX函数调用一个接一个地发生。它们仍然在运行,因为它们没有等待前面的AJAX调用在执行之前完成(如果将
async
设置为false
,这将是一种行为)。AJAX调用应该是这样工作的;您向服务器发送请求,然后等待响应以执行函数。为了使AJAX调用更快地完成,您必须优化服务器端代码(如果可能的话)。此外,无需将async
属性设置为true
,因为这是默认设置。Javascript是单线程的,因此您不能在完全相同的时间执行多个函数“我已将async设置为true,因此假设这些调用将同时发生”您确实理解异步的含义,不是吗?不必设置async:true
。这是默认的。如果有很大的延迟,则可能与服务器端相关。检查浏览器开发工具网络中的实际请求也有些选项对GET请求无效您不发送任何数据,因此处理与GET上的mimeType和contentType一样毫无意义没有发送内容,跨域实际上只用于测试jsonpChnage您的服务器脚本,以使其睡眠随机数目的时间秒。然后您将看到日志消息发生的顺序不正确。