2016-11-16 108 views
-1

如何正确显示和隐藏ajax加载程序以及ajax调用for循环。Ajax调用循环

$scope.upload = function(){ 
    $(".loader").show(); 
    for(var i=0;i<count ;i++){ 
    $.ajax({ 
       type: "POST", 
       url: "/upload", 
       data: data; 
       contentType : 'multipart/form-data', 
       success: function(msg){ 

       }); 
       } 
      }); 
} 

}

+0

做一个varibale flagCounter并增加counterFlag ajax请求完成后,检查计数是否等于否,如果是,则隐藏加载程序 –

回答

0

一种选择是检查当所有Ajax调用已经完成:

$scope.upload = function(){ 
    $(".loader").show(); 
    var calls = []; 
    for(var i=0;i<count ;i++){ 
    calls[i] = $.ajax({ 
        type: "POST", 
        url: "/upload", 
        data: data; 
        contentType : 'multipart/form-data', 
        success: function(msg){ 

        }); 

      }); 
    } 
    Promisse.all(calls).then(function(data){ 
     $(".loader").hide(); 
    }); 
} 
0

尝试这样的:

$(".loader").show(); 
var counterFlag =0; 
for (var i = 0; i < count; i++){ 
    $.ajax({ 
      //ajax options 
      success: function(msg){ 

      }, 
      complete:function(d){ 
       counterFlag++; 
       if(counterFlag==count) 
       { 
        $(".loader").hide(); 
       } 
      }); 
    } 
    } 
+0

装载机正在工作,但它仍然是卡... –

+0

装载机没有隐藏? –

+0

隐藏,但...我的装载机图像有spining议案..圆形旋转,这是stucking –