我遇到两个AJAX调用问题。我是从jquery对象调用它。我希望AJAX调用成功,首先让内容等待呈现,直到第二个AJAX请求也收到内容。
答案 0 :(得分:1)
你可以这样做:
(function() {
var executedAmount = 0;
var datas = {};
//Ajax call 1:
$.ajax({
'success': function(data) {
executedAmount++;
datas[0] = data;
callBack();
}
});
//Ajax call 2:
$.ajax({
'success': function(data2) {
executedAmount++;
datas[1] = data2;
callBack();
}
});
function callBack() {
if (executedAmount == 2) {
//Do something with datas here
}
}
})();
答案 1 :(得分:1)
如果你可以使用jQuery 1.5,那么这将解决你的问题。
介绍$.when()
示例:在 两个之后执行一个功能 ajax请求成功 。 (见 一个jQuery.ajax()文档 完整的成功和描述 ajax请求的错误情况。)
$.when($.ajax("/page1.php"), $.ajax("/page2.php")).done(function(a1, a2){
/* a1 and a2 are arguments resolved for the
page1 and page2 ajax requests, respectively */
var jqXHR = a1[2]; /* arguments are [ "success", statusText, jqXHR ] */
if ( /Whip It/.test(jqXHR.responseText) ) {
alert("First page has 'Whip It' somewhere.");
}
});
答案 2 :(得分:0)
只需添加上述答案,您就可以测量datas
的长度,而不是单独使用变量。
答案 3 :(得分:0)
如果您使用此功能
$(document).ready(function(){
$('selector').jaxStop(function() {
//Do some thing
WhenAjaxEnds();
});
});
function WhenAjaxEnds(){
//do something here ....
}