for循环中的.POSTs的返回顺序与它们发送的顺序不同

时间:2013-01-02 20:17:53

标签: php mysql post

我在forloop中做了几个.post调用。来自.post的返回数据被附加到div容器。循环的数据已排序。我希望post调用以与发送它们相同的顺序返回数据。但事实并非如此......

for(i = 0; i<data.length;i++){
    $.post('test.php',{variables},function(data1){
                $('#wrapper').append(data1);
            });
}

有没有办法让.post以相同的顺序返回?

1 个答案:

答案 0 :(得分:1)

AJAX是异步的。

如果你想按顺序调用它们,那么你必须等待ajax调用完成,然后再调用下一个。


您可以尝试将其放入queue

var $q = $({});

for(var i = 0; i < data.length; ++i) {
    $q.queue(function(next){
        $.post('test.php',{variables},function(data1){
            $('#wrapper').append(data1);
            next(); //call next fn
        });
    });
}