2010-05-05 22 views
1

Je l'utilisateur jquery.ajax appel au contrôleur de asp.net mvc ... Je voudrais montrer un indicateur de chargement .. J'ai essayé cela, mais cela ne semble pas travailler ...ajaxStart() montrant le message de chargement ne semble pas fonctionner

<div class="loading" style="padding-left:5px; margin-bottom:5px;display:none;"> 
     Loading...&nbsp 
</div> 

et mon jquery appel ajax ressemble à ceci,

function getMaterials(currentPage) { 
    $.ajax({ 
    url: "Materials/GetMaterials", 
     data: {'currentPage': (currentPage + 1) ,'pageSize':5}, 
     contentType: "application/json; charset=utf-8", 
     global: false, 
     async: false, 
     dataType: "json", 
     success: function(data) { 
      var divs = ''; 
      $("#ResultsDiv").empty(); 
      $.each(data.Results, function() { 
       //my logic here....    
       $(".loading").bind("ajaxStart", function() { 
       $(this).show(); 
       }).bind("ajaxStop", function() { 
       $(this).hide(); 
       }); 
      } 
    }); 
    return false; 
} 

mon indicateur de chargement doen't semblent showup .. Toute suggestion ....

Répondre

4

utilisant .ajax() vous devriez simplement appeler:

beforeSend: function(xmlHttpRequest){ 
    // show anything here 
} 

et

complete: function(xmlHttpRequest, status){ 
    // hide it again 
} 
2

ajaxStart et beforeSend fonctionne pour Firefox, mais pas pour les tous les navigateurs (par exemple Safari) lorsque nous envoyons l'appel ajax avec async: false. Je trouve toujours le chemin pour cela

+0

avez-vous trouvé une solution à ce problème? –