循环发送ajax请求
来源:互联网 发布:手机cad软件 编辑:程序博客网 时间:2024/05/16 23:47
在某些情况下,我们需要连续发送相同的ajax请求,比如提交多套资料,根据多个id请求一组数据,我们就需要循环发送ajax请求
js代码如下:
var testArr=[1,2,3,4];function sendAjax(){var result=[];for(var i=0;i<testArr.length;++i){$.ajax({url : "upload.php",type : "POST",async:true,//异步data :{"param" :testArr[i] },success : function(data)//成功回调{result.push(data);},error : function(){alert("请求错误")}});}doSomething(result);}function doSomething(data){console.log(data);}sendAjax();
php 代码如下:
<?phpecho $_POST['param'];
在控制台输出结果
是个空的数组,造成这个结果的原因是由于ajax请求是异步的,没等到结果返回,就执行了doSomething()函数
解决方案一:
既然ajax是异步的,只要把ajax改成同步可以了,代码如下:
$.ajax({url : "upload.php",type : "POST",async:false,//不异步(同步)data :{"param" :testArr[i] },success : function(data)//成功回调{result.push(data);},error : function(){alert("请求错误")}});解决方案二:
我们可以等到上一个请求结束再开始下一个请求,直到全部结束,代码如下:
var testArr=[1,2,3,4];function sendAjaxS(dataArr){var index=0;var result=[];sendAjax();function sendAjax(){if(index>=dataArr.length){doSomething(result);return;}$.ajax({url : "upload.php",type : "POST",async:true,data :{"param" :dataArr[index] },success : function(data){result.push(data);index++;sendAjax();},error : function(){alert("请求错误")}});}}function doSomething(data){console.log(data);}sendAjaxS(testArr);
结果如下:
还有一些是使用定时器的,隔一段时间发送一次,个人以为很不靠谱,毕竟网络延时是不可估计的,无法确定一个合理的时间
0 0
- 循环发送ajax请求
- 循环发送ajax请求的解决方法
- jquery 循环调用ajax发送请求
- 循环发送AJAX请求,变量问题
- 循环发送ajax请求的解决方法
- JavaScript for循环中发送AJAX请求的问题
- JavaScript for循环中使用Ajax发送请求
- 基础Ajax发送请求
- JQuery发送Ajax请求
- Ajax发送GET请求
- Ajax发送POST请求
- AJAX发送请求
- AJAX发送异步请求
- ajax发送同步请求
- js发送ajax请求
- Ajax发送GET请求
- Ajax发送Post请求
- ajax 发送异步请求
- 当心!新型木马病毒使Linux设备沦为僵尸网络
- 日志管理工具logrotate
- Spring MVC学习总结(7)——Spring MVC整合Ehcache缓存框架
- Divide the Sequence
- 初涉码农界
- 循环发送ajax请求
- iOS开发几年了,你清楚OC中的这些东西么?
- File path too long on Windows, keep below 240 characters
- CodeForces 632B Alice, Bob, Two Teams
- 命名空间
- ural 2072 - Kirill the Gardener 3 - dp
- Android从按下开机键到启动发生了什么
- ubuntu14.04 + mxnet + python2.7 安装指南
- java中classpath详细