多个ajax异步执行,初探关于ajax多个请求,但需要全部完成后才能执行的方法

本文主要总结一下需要等待多个ajax请求完成后再执行操作的方法

最近在做一个英雄榜项目遇到一个问题,需要用到6次Ajax来获取各个榜单的数据再进行操作。

一、ajax嵌套ajax,传说中的嵌套金字塔,以及这种方式只能串联发起ajax请求

function getDataFun(){

$.ajax({url: "/equip_rank",type:'GET',dataType:'jsonp',success: function(data1){

$.ajax({url: "/score_rank",type:'GET',dataType:'jsonp',success: function(data2){

$.ajax({url: "/summon_rank",type:'GET',dataType:'jsonp',success: function(data3){

console.log(data1);

console.log(data2);

console.log(data3);

}

})

}

})

}

})

}

以上方法虽然可行,但是当ajax请求增多,嵌套层数也逐渐加深,代码就变得难以维护了,而且请求是串联发起的,效率也不高。

二、设置一个全局变量flag,所有ajax接口都可以同时发起请求,而且代码分离,在每个ajax的回调中都统一回调一个函数,由这个函数来判断flag值是否达到条件。

f

你可能感兴趣的:(多个ajax异步执行)