AJAX 多次调用,后面的会覆盖前面的内容/数据

1.有的时候,同一个请求链接,需要传递不同的参数,发起多个请求。因此我采用了for循环。

1.1 此处是需要传递的参数

function behavioranalysisReqstue(type) {
  var typeStr = "newUsers";
  switch (type){
      case 1:
        typeStr = "newUsers";break;
      case 2:
        typeStr = "activeUsers";break;
      case 3:
        typeStr = "newUsersCount";break;
      case 4:
        typeStr = "activeUsersCount";break;
      case 5:
        typeStr = "orderVolume";break;
      case 6:
        typeStr = "userFollow";break;
      case 7:
        typeStr = "notActive";break;
  }
  return {
    "seachTime":seachTime,
    "startDate":startDate,
    "endDate":endDate,
    "type":typeStr,
    "index":type,
  }
}

2.此处为AJAX请求,调用了传递参数的方法

 

 注意:o定义为常量,是因为AJAX是异步的,会导致AJAX里面switch不管是否执行完毕,都会取index的值。

其中根据behavioranalysisReqstue方法,返回的index值,调用不同的函数渲染页面。

var isPopupMsg=true;
  for (var i = 1; i < 8; i++) {
    const o=behavioranalysisReqstue(i);
    $.post(DYD.U(behavioranalysisList1Url),o,function(data,textStatus){
      layer.close(loading);
      var jsonData = DYD.toJson(data);
      if(jsonData.code==-1){
        if (isPopupMsg) {
          isPopupMsg=false;
          layer.msg(jsonData.msg);
        }
        return;
      }
      switch (o.index){
        case 1:
          
          //新增用户数
          $("#newAddUser").text(jsonData);
          break;
        case 2:
          //活跃用户数
          $("#dynamicUser").text(jsonData)
          break;
        case 3:
          //新增用户统计
          newAddUserData(jsonData);
          break;
        case 4:
          dynamic(jsonData);
          break;
        case 5:
          //成交量前十名客户
          userTopTen(jsonData.orderVolume);
          break;
        case 6:
  //        用户关注点分析表格数据
          focusCount_table(jsonData);
          break;
        case 7:
          //调用近期未活跃用户排行表格数据
          lazyUser_table(jsonData);
          break;
      }
    });
  }
posted @ 2019-12-18 17:22  白墨阳  阅读(1095)  评论(0编辑  收藏  举报