0

forloop 内でいくつかの .post 呼び出しを行っています。.post からの戻りデータは、div コンテナーに追加されています。ループされているデータはソートされます。ポストコールが送信したのと同じ順序でデータを返すことを期待しています。しかし、そうではありません...

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 に答える