您的位置:首页 > Web前端 > JavaScript

js中使用队列发送ajax请求

2013-12-25 11:27 281 查看
最近,项目中需要按照先后顺序发送ajax请求,并且在一次请求结束后才能发起下一次,不然就会导致逻辑错误。

解决办法是定义一个数组,保存ajax请求数据。

以下使用extjs4定义一个类

Ext.define('tazi.Test', {

  answerList:[],   //保存应答数据

  saveAnswer:function(answer){   //需要把应答数据保存到数据库中的第一层方法

     this.answerList.push(answer);
if(!this.answerInterval){
this.startAnswerInterval();
}
  },
  startAnswerInterval:function(){  //启动
    var me=this;
me.isRun=false;
me.answerInterval=setInterval(function(){
if (me.answerList.length > 0 && !me.isRun) {
me.isRun = true;
var answer=me.answerList.shift();
ajaxRequest({       //自定义的发送ajax请求的方法
url:'commandAction!saveAnswer.action',
params:answer,
callBack:function(result){  //请求成功返回后的回调函数
me.isRun = false;  //更新同步用的参数isRun
}
});
}
},100);
  }
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: