多个AJAX请求会按照创建的顺序执行吗?

时间:2014-07-24 12:46:08

标签: javascript jquery ajax

简而言之,问题是:

jQuery.ajax({
    url: some_url,
    success: function(){
        alert('success1');
    },
    error: function(){
        alert('error1');
    }
});
jQuery.ajax({
    url: some_url,
    success: function(){
        alert('success2');
    },
    error: function(){
        alert('error2');
    }
});
jQuery.ajax({
    url: some_url,
    success: function(){
        alert('success3');
    },
    error: function(){
        alert('error3');
    }
});

这些总是会导致:

alert('success1');
alert('success2');
alert('success3');

或者输出可以是:

alert('success2');
alert('success3');
alert('success1');

如果我想将最后一个输出只显示给用户,我不应该在先前的AJAX请求上运行abort()吗?我的意思是,只要success1始终是最后一条消息,我就不介意他们看到success2success3条消息。

1 个答案:

答案 0 :(得分:0)

尝试阅读有关JavaScript Promises / A +(即此处http://www.html5rocks.com/en/tutorials/es6/promises/) 这可能会有所帮助。 它允许做smth。喜欢 doSmthAsync().then(doSmthAsyncElse()).then(...)等等

此外,jQuery deffered可以帮助你。 http://api.jquery.com/jquery.deferred/