同时三个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();
下面的这个类起关键作用。
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();
相关文章推荐
- 使用XMLHttpRequest对象完成原生的AJAX请求
- AJAX中同时发送多个请求XMLHttpRequest对象处理方法
- 同时发送了多次ajax请求,且都是异步的,怎样拿取某一次ajax请求的返回数据。
- 重写ajax,实现请求加载中,请求完成隐藏
- ajax跨域jsonp并且post请求No 'Access-Control-Allow-Origin'以及执行error时readyState=4同时status=200的解决方法
- 监听ajax请求完成
- 多个ajax请求时控制执行顺序或者等待执行完成后的操作
- jQuery中的Ajax实现跨域请求,完成同源策略问题
- 加载页面时同时触发两个ajax请求,数据显示的顺序不一致
- 已知三个无符号数a,b,c,存放在ADR开始的连续单元,编制完成下列操作的程序:若a,b,c同时为偶数,将FLAG单元置1,若同时为奇数,FLAG置0,否则为全1
- AJAX中同时发送多个请求XMLHttpRequest对象处理方法
- Java——Ajax+Tomcat完成异步请求
- 一步一步制作jquery插件Tabs(ajax只请求一次效果,78行完成)
- 采用指数退避算法实现ajax请求的重发,全部完成时触发回调函数
- Struts2拦截器的应用:未登录用户拦截(同时拦截ajax请求)
- vue中选择 axios 来完成 ajax 请求。
- 使用jquery完成一个ajax请求
- Ajax发送同步请求给Spring,通过controller处理完成后如何返回响应
- AJAX中同时发送多个请求XMLHttpRequest对象处理方法
- AJAX中同时发送多个请求(并发)对象处理方法