Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-Ajax异步不工作?_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 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

我在jQuery中有一个简单的Ajax调用,如下所示

    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您的服务器脚本,以使其睡眠随机数目的时间秒。然后您将看到日志消息发生的顺序不正确。