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

同时三个AJAX请求完成后,再做一件事。

2012-11-29 13:46 246 查看
在我们的项目中,采用AJAX请求数据,等请求数据完成再做一件事情。比如说我的首页有三个AJAX数据请求,请求前将弹出遮罩层,但是要当这三个请求完成后,再将层隐藏。它们没有任何先后顺序(不像省市县这样的加载),这个时候可以采用这种来实现。我是有EXTJS4的项目。

下面的这个类起关键作用。

Ext.define("CMDBuild.Utils.CMRequestBarrier", {
constructor: function(cb) {
var me = this;
this.dangling = 1;

this.cb = function () {
me.dangling--;
if (me.dangling == 0) {
cb();
}
}
},

getCallback: function() {
this.dangling++;
return this.cb;
},

start: function() {
this.cb();
}

});

// 弹出层遮罩层代码省了,

var reqBarrier = new CMDBuild.Utils.CMRequestBarrier(function callback() {
.....最终要处理的函数体
});

Ext.Ajax.request( {

url:'////'
params : {
active : false
},
success : function(response) {

},
callback: reqBarrier.getCallback()
});

Ext.Ajax.request( {

url:'////'
params : {
active : false
},
success : function(response) {

},
callback: reqBarrier.getCallback()
});

Ext.Ajax.request( {

url:'////'
params : {
active : false
},
success : function(response) {

},
callback: reqBarrier.getCallback()
});
reqBarrier.start();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  EXTJS4