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

时间:2015-03-11 05:38:19

标签: php jquery

我想使用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);
        }
    );

}

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

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

1 个答案:

答案 0 :(得分:0)

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

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);