我在forloop中做了几个.post调用。来自.post的返回数据被附加到div容器。循环的数据已排序。我希望post调用以与发送它们相同的顺序返回数据。但事实并非如此......
for(i = 0; i<data.length;i++){
$.post('test.php',{variables},function(data1){
$('#wrapper').append(data1);
});
}
有没有办法让.post以相同的顺序返回?
答案 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
});
});
}