链接多个阿贾克斯与jQuery推迟对象的调用(Chaining multiple ajax call

2019-07-31 10:34发布

虽然寻找类似这里描述的解决方案: 如何链使用jquery ajax调用我正在寻找使用jQuery v1.52的解决方案。

我必须作出一套Ajax请求。 但每次Ajax请求是在完成先前的Ajax调用后只发送。 我试图用jQuery 1.5.2实现这一点,但只是无法。 下面是我从上述例子修改。 这是行不通的。 谁能帮我得到这个工作? 预计产量http://jsfiddle.net/k8aUj/3/

PS:我不能升级到版本1.5.2之外

Answer 1:

呦! 解决了! 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();

这是你想要的吗?



文章来源: Chaining multiple ajax calls with jquery deferred objects