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

来源:互联网 发布:opc软件 编辑:程序博客网 时间:2024/06/04 19:11

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


  
   
   
        
   
 
        

原创粉丝点击