多个AJAX请求是否按照创建的顺序执行?

Will multiple AJAX requests execute in the order they were created?

本文关键字:顺序 执行 创建 AJAX 请求 是否 多个      更新时间:2023-09-26

总之,问题是:

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()吗?我的意思是,我不介意他们看到success1success2的消息,只要success3将永远是最后一个。

尝试阅读JavaScript Promises/A+(即这里http://www.html5rocks.com/en/tutorials/es6/promises/)这可能会有帮助。它允许做史密斯。就像doSmthAsync().then(doSmthAsyncElse()).then(...)

另外,jQuery的差异可以帮助您。http://api.jquery.com/jquery.deferred/