知识积累日常_17.12.1_利用for循环 循环发送ajax
2017-12-01 11:02
375 查看
需求:最近项目需要循环发送ajax向后台发送请求导出文件。有多个业务线,如果一次性全部下载后台负荷会过大,所以希望前台根据每条业务线单独发送请求,后台进行区分下载。我上网查阅了很多资料,下面附上代码。
原理:原理是运用递归,来发送ajax,把ajax放在for循环中,达到根据业务线循环发送的目的。
缺点:后台人员可以接受到我的参数,但是导出文件却无反应,目前正在研究。
代码:
$("#downloadAll").click(function (){//全部下载按业务线 单独下载
begin=$("#beginDate").val(),end=$("#endDate").val();
if(hasValue(begin) && hasValue(end)){
if(begin>end){msg='日期起始值不得大于结束值'}
}else if( !hasValue(begin) && !hasValue(end)){
msg='请选择日期范围';
}else if(!hasValue(end)){
msg='请选择日期结束值';
}else{
msg='请选择日期起始值';
}
var index=0;
sendAjax();
function sendAjax()
{
var list = new Array(); //定义数组
$("#yewuxian option").each(function(){ //遍历所有option
var txt = $(this).val(); //获取option值
if(txt!=''){
list.push(txt); //添加到数组中
}
})
var yewuxianId = list[index];//取到每个业务线id
var item = productDic(yewuxianId);//取到productDicId
var item2;//定义变量
if(index >= list.length ) //递归退出条件
{
return;
}
for(var i=0;i<item.length;i++){//循环业务线产品
item2 = item[i].id;
$.ajax(
{
url : "${pageContext.request.contextPath}/wallet/report/downloadCheckFile",
type : "POST",
async:false,
data :{
"merchantName" :list[index],
"productName" : item2,
"startTime" : begin,
"endTime" : end
},
success : function(data)
{
console.log(list[index] + ',' + item2 );
},
error : function()
{
console.log("fail"+list[index] + ',' + item2 );
}
});
}
index++;
sendAjax();
}
})
});
原理:原理是运用递归,来发送ajax,把ajax放在for循环中,达到根据业务线循环发送的目的。
缺点:后台人员可以接受到我的参数,但是导出文件却无反应,目前正在研究。
代码:
$("#downloadAll").click(function (){//全部下载按业务线 单独下载
begin=$("#beginDate").val(),end=$("#endDate").val();
if(hasValue(begin) && hasValue(end)){
if(begin>end){msg='日期起始值不得大于结束值'}
}else if( !hasValue(begin) && !hasValue(end)){
msg='请选择日期范围';
}else if(!hasValue(end)){
msg='请选择日期结束值';
}else{
msg='请选择日期起始值';
}
var index=0;
sendAjax();
function sendAjax()
{
var list = new Array(); //定义数组
$("#yewuxian option").each(function(){ //遍历所有option
var txt = $(this).val(); //获取option值
if(txt!=''){
list.push(txt); //添加到数组中
}
})
var yewuxianId = list[index];//取到每个业务线id
var item = productDic(yewuxianId);//取到productDicId
var item2;//定义变量
if(index >= list.length ) //递归退出条件
{
return;
}
for(var i=0;i<item.length;i++){//循环业务线产品
item2 = item[i].id;
$.ajax(
{
url : "${pageContext.request.contextPath}/wallet/report/downloadCheckFile",
type : "POST",
async:false,
data :{
"merchantName" :list[index],
"productName" : item2,
"startTime" : begin,
"endTime" : end
},
success : function(data)
{
console.log(list[index] + ',' + item2 );
},
error : function()
{
console.log("fail"+list[index] + ',' + item2 );
}
});
}
index++;
sendAjax();
}
})
});
相关文章推荐
- .net MVC知识积累,当遇到一个页面有多个数据集合时可以采用哈希表来存贮集合。通过循环来读取数据!
- java学习过程中需要了解的单词以及小知识的日常积累
- 利用jquery的ajax实现异步请求发送数据到后台
- js中,for循环里面放ajax,ajax访问不到变量以及每次循环获取不到数据问题总结
- 根据视频和平时所学知识,利用循环的嵌套编写了菱形与倒三角形。熟悉循环的嵌套
- 利用Ajax把前端的数据封装成JSON格式发送到服务器端并写成XML格式在服务器的硬盘上
- 利用Ajax发送请求(一)
- 利用ajax持续发送请求,实现web版的cmd命令执行效果
- 利用Ajax发送请求(二)
- 利用JQuery发送ajax请求进行站内搜索
- 利用Ajax改变发送请求方式
- 利用循环获取AJAX传回的值,并将其显示在弹出框里面
- js:利用for循环,循环输出HelloWord
- struts2的验证码及利用jquery发送ajax请求并利用json做数据交换
- 详解JavaScript for循环中发送AJAX请求问题
- 编程知识(日常积累)
- 知识积累日常_17.11.22_JavaScript日期对象
- js中,for循环里面放ajax,ajax访问不到变量以及每次循环获取不到数据问题总结
- js中,for循环里面放ajax,ajax访问不到变量以及每次循环获取不到数据问题总结