使并行 Ajax 请求按顺序返回响应


Make Parallel Ajax requests return response in order

我想使用 jQuery 发出多个 ajax 请求,将表行附加到表中,但我希望它们的响应按顺序排列

for (i=0;i<5;i++) {
    //variables tempString, start_value updated here after every loop iteration
    $.post(
        'results.php',
        {start_value:start_value,tempString:tempString},
        function(data3){
            // alert(data3);
            $('#data_table tbody tr:last').after(data3);
        }
    );
}

结果.php 为每个请求返回一组表行,但它们不会以正确的顺序追加到表中。

如何让下一个 Ajax 请求等到第一个请求完成?

您需要同步调用,在您的情况下,它是异步调用的,这就是为什么它不能以正确的顺序附加。

function doAsyncCall(i) {
    if (i < 5) {
       $.post(
        'results.php',
        {start_value:start_value,tempString:tempString},
        function(data3){
            $('#data_table tbody tr:last').after(data3);
            doAsyncCall(i+1);
        }
      );
    }
}
doAsyncCall(0);