知识积累日常_17.12.1_利用for循环 循环发送ajax

本文介绍了一种使用递归方法结合AJAX技术按不同业务线分别导出文件的方法。该方法通过JavaScript实现,利用for循环遍历业务线并发起请求,减轻了后台负载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:最近项目需要循环发送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();  
        }   
        
        
    }) 
});


  
   
   
        
   
 
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值