4

ここで説明されているのと同様のソリューションを探している間: jquery を使用して ajax 呼び出しをチェーンする方法 jquery v1.52 を使用したソリューションを探しています。

作成する ajax リクエストのセットがあります。ただし、各 ajax リクエストは、前の ajax 呼び出しが完了した後にのみ送信されます。私はjquery 1.5.2でこれを達成しようとしていますが、できません。これは、上記の例から変更したものですそれは動作しません。誰でもこれを機能させるのを手伝ってもらえますか? 予想される出力はhttp://jsfiddle.net/k8aUj/3/です

PS: 1.5.2 以降のバージョンにアップグレードできません

4

1 に答える 1

4

よ!解決しました!http://jsfiddle.net/sandhyasriraj/AaHZv/

var x = null;
var i = 0;
x= $.Deferred();
var countries=["US","CA","MX","bx","fs","ZX"];
function log(msg) {
    var $out=$("<div />");
    $out.html(msg);
    $("#console").append($out);
}


callX = function(j) {
    return $.ajax({
            type: "GET",
            url: "/echo/json/",
            data: {country:countries[i]},
            dataType: "JSON",
            success: function(){
                log("Successful request for [" + countries[j] + "]");
                i++;      
                x.resolve();
                xy();
               }
        });

}
x.resolve();
xy = function()
{
    debugger;
    if(i > 5)
        return;

     $.when(x).then(function() {
        x = $.Deferred();
        log("Making request for [" + countries[i] + "]");
        callX(i);
    });
}
xy();

これは、あなたの望むことですか?

于 2012-09-07T13:31:30.500 に答える