0

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

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

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

4

1 回答 1

1

AJAX 是异步的。

如果您希望按顺序调用它们,则必须等待 ajax 调用完成,然后再调用下一个。


您可以尝试将其放入队列中:

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
        });
    });
}
于 2013-01-02T20:19:11.657 回答