html同时执行多个ajax,多个异步ajax请求怎么指定顺序执行,

多个异步ajax请求如何指定顺序执行,急!!!!

先上代码:

function loads(){

var initPath  = 'http://192.168.81.177:8089/di-data-service/';

var reports = ['cpu_report','mem_report','load_report','network_report'];

var currentPath =     initPath + 'r=day&json=1&cName='  ;

$.each(reports,function(index,report){

rendering( currentPath +report , index );

})

}

function rendering(data , index ){

$.ajax({

url: url,

type : "get",

dataType:'jsonp',

jsonp:"jsonpCallback",

success: function(result) {

//parse result , logic

//logicFun(result , index );

console.log('rendering - '+index);

}

}

function logicFun(data , index ){

//parse data  , logic

console.log('logicFun - '+ index );

}

页面在加载完毕后执行loads函数,进行页面数据的渲染,需要注意到的是:我需要最终在控制台(chrome测试)打印出来的是按照reports数组的升序,问题是:无论是否将逻辑操作进行封装(调用logicFun函数)打印出来的还是不封装,得到的结果都是乱序,我最终需要达到的目的是要升序,麻烦大神们帮忙给些意见。

PS:必须异步,页面请求比较多,同步会导致页面卡死。而异步就存在这个顺序问题,有看到些资料提到队列、绑定,不过本人没找到具体其他资料,如哪位大神知道,还望帮忙解惑,谢谢啦!紧急贴!

125027188.gif

------解决思路----------------------

看下这个http://www.jb51.net/shouce/jquery1.82/jQuery.when.html

http://www.cnblogs.com/charling/p/3411385.html

------解决思路----------------------

自己写代码来控制执行循序,而不是直接for,each并发执行,做递归调用

function loads() {

var initPath = 'http://192.168.81.177:8089/di-data-service/';

var reports = ['cpu_report', 'mem_report', 'load_report', 'network_report'];

var currentPath = initPath + 'r=day&json=1&cName=';

rendering(currentPath, 0, reports);

/*

$.each(reports, function (index, report) {

rendering(currentPath + report, index);

})*/

}

function rendering(currentpath, index,reports) {

$.ajax({

url: currentpath + reports[index],

type: "get",

dataType: 'jsonp',

jsonp: "jsonpCallback",

success: function (result) {

//parse result , logic

//logicFun(result , index );

console.log('rendering - ' + index);

index++;

if (index 

}

});

}

function logicFun(data, index) {

//parse data  , logic

console.log('logicFun - ' + index);

}

------解决思路----------------------

将要发送的数据和地址放到一个数组里

每次ajax返回成功pop后递归执行发送方法试试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值