同一个异步请求
发送了第一次的请求后,数据很久没有返回。
这时发送了第二次,并获得了响应。
页面被更改。
但不久后,第一次请求的数据返回又将页面再次更改。
有什么好方法能防止第二次的更改呢?
如果你是用juqey的话,那么
ajax1({}).then(//做一些判断 return ajax2({}))
任务队列
本次请求要完成10个操作,
请求提交,创建任务完成,返回任务id,后台执行任务
前台ajax轮询任务执行详情
某一个异步请求返回了结果,用一个变量标识一下,然后每一个异步请求成功功能的回调函数判断下变量是否标识为已经更改或者没有更改这样。
伪代码如下:
// 用来标识某个异步函数以及成功回调
// false 为那个异步函数还没有返回数据
// true 为那个异步函数已经返回数据
var flag = false;
// 反正是同一个异步函数那成功的回调函数也是一样的咯
var success = function() {
// 首先判断一下 flag 是否被前面的异步函数修改了
// 没有的话就执行 if 语句里面的代码
if (!flag) {
// 执行你的代码
// 最后再把标识改一下
flag = true;
}
};
// 第一次发送
$.get('/api/xxx')
.success(success);
// 第二次发送
$.get('/api/xxx')
.success(success);
发送下一个请求时,抛弃上一个请求。