10

jQuery AJAX API を使用して同期呼び出しを行うことはできますか?

4

2 に答える 2

14

オバマが言うように: はい、できます!

jQuery.ajax()

設定

async = false

.ajax() ハンドラー内でトリックを行います。

于 2010-05-31T09:20:54.757 に答える
3

jQuery は synch:false プロパティを設定することで同期 AJAX 呼び出しを行うことができますが、これにより、AJAX が完了するまでブラウザーがハングします。Frame.jsのようなフロー制御ライブラリを使用すると、ブラウザーを縛ることなく同期呼び出しを行うことができます。

$.each(ajaxObjects, function(i, ajaxCall){
    Frame(function(next)){ // declare the callback next here

        ajaxCall.complete = function(data){
            // do something with the data
            next(); // go to the next ajax call
        }
        $.ajax(ajaxCall);

    });
}
Frame.init();

この一連の AJAX 呼び出しは順番に行われ、それぞれが前の呼び出しが完了するのを待って、ブラウザーがハングすることはありません。また、ランダムな順序で返される非同期呼び出しとは対照的に、データが ajax 呼び出しから予測可能な順序で返されるという追加の利点もあります。

于 2012-04-28T16:42:21.540 に答える