循环ajax请求
来源:互联网 发布:河南软件服务协会 编辑:程序博客网 时间:2024/05/22 04:53
(1)问题:循环ajax请求,ajax是异步的,
//如何保证在第一条数据发送成功后再继续循环发送下一条数据呢?不用jqueryvar result = [1,2,3,4];for(var i=0;i<result.length;i++){ send(i);}function send(index){ $http({ method: "POST", url: "url", data: result[i], timeout: 1000 }) .success(function(data) { }) .error(function(data) { }) .finally(function() { });}
(2)问题:可以使用递归代替循环在请求成功的回调函数中递归调用请求函数,但是这也有个问题,递归后的结果无法return到外面的程序,因为递归函数仍是异步的,不影响顺序程序的执行。
var result = [1,2,3,4];send(0);//开启递归调用function send(index){ if(index > result.length) return;//要做处理,估计也是这里调用别的函数,即ajax请求的回调函数 $http({ method: "POST", url: "url", data: postdata, timeout: 1000 }) .success(function(data) { index++; send(index); }) .error(function(data) { index=result.length; send(index); }) .finally(function() { });}
(3)如果上述递归异步调用无法满足需求,前提是可以使用jquery,可以采用同步ajax请求,完全顺序程序的逻辑。
var result = [1,2,3,4];for(var i=0;i<result.length;i++){ console.log("start",i); send(i); console.log("end",i)}function send(index){ $.ajax({ method: "POST", url: "url", data: result[i], async:false,//同步 timeout: 1000 }) .success(function(data) { console.log("sucess",i); }) .error(function(data) { console.log("error",i); }) .finally(function() { });}
打印结果:
start 0
success 0
end 0
完全是顺序执行的逻辑
阅读全文
0 0
- 循环发送ajax请求
- 循环ajax请求
- Mootools循环执行Ajax请求
- 不能循环 ext ajax请求
- js 循环提交ajax请求
- 循环发送ajax请求的解决方法
- jquery 循环调用ajax发送请求
- 循环发送AJAX请求,变量问题
- 循环发送ajax请求的解决方法
- ajax请求返回的Json格式数据循环输出
- JavaScript for循环中发送AJAX请求的问题
- 解决jquery.pagination ajax 请求分页死循环
- JavaScript for循环中使用Ajax发送请求
- ajax请求接口,在for循环中处理返回参数
- AJAX请求
- ajax 请求
- ajax请求
- AJax请求
- dubbox与swagger集成
- 一份电子工程师常用网站!
- ContentProvider和Uri详解
- java 利用反射获取内部类静态成员变量的值
- imgproc模块--Laplace边缘检测算子
- 循环ajax请求
- Vue2.0 从零开始--搭建环境
- FFmpeg源代码简单分析:libavdevice的gdigrab
- 编码转换
- 关于解决RSA非对称加密时,将密文存入数据库取出后,再对密文解密的时候抛出javax.crypto.BadPaddingException: Data must start with zero
- ClassNotFoundException异常
- 看雪CTF2017第五题 独行孤客CrackMe的writeup
- Nibs真的有必要吗?
- eclipse中把国际化文件spark_i18n_zh_CN.properties中的unicode码转化成中文