2008-11-29 8 views
2

J'utilise jquery et la méthode getJSON et je me demande s'il existe un moyen d'afficher un message indiquant le chargement avant de charger mon contenu. Je sais avec les appels jquery ajax il y a les callbacks before submit où vous pouvez avoir quelque chose mais le getJSON n'a que trois options.Méthode d'affichage du message "chargement"

Des idées?

Répondre

7

il y a les événements .ajax "avant" et "succès" que vous pouvez déclencher.

Normalement cependant, vous serait tout simplement faire quelque chose comme


    showLoadingAnimation(); 
    $.getJSON( ..... function(){ 
     dontShowLoadingAnimation(); 
    });

ou quelque chose de similaire.

Votre question est cependant quelque peu vauge, et il est difficile de savoir ce que vous voulez faire que vous ne pourriez pas faire en javascript.

5

Vous pouvez utiliser ajaxSend et ajaxStop sur l'objet jQuery pour attacher les gestionnaires d'événements appropriés comme dans this tutorial. Cela fera apparaître l'indicateur de progression indépendamment du type de requête (toutes les méthodes jQuery AJAX et JSON) et masquera également le graphique de chargement si une erreur survient.

+0

Est-ce que ceux-ci fonctionnent avec getJSON? Ce tutoriel a aidé ... merci pour le lien. – Coughlin

+0

Je ne l'ai pas testé, mais étant donné que, à la base, jQuery.ajax et jQuery.getJSON appellent simplement jQuery.get avec les valeurs par défaut. –

9

Ajouter ce quelque part sur votre page:

<div id="loading" style="display:none"> 
    <img src="/images/ajax-loader.gif" alt="Loader" />&nbsp;Loading... 
</div> 
<script type="text/javascript"> 
    $().ready(function() { 
     $("#loading").bind("ajaxSend", function() { 
      $(this).show(); 
     }).bind("ajaxComplete", function() { 
      $(this).hide(); 
     }); 
    }); 
</script> 

Vous pouvez définir le style du chargeur div que vous le souhaitez, par exemple Google Mail comme chargeur:

#loading 
{ 
    position:fixed; 
    _position:absolute; 
    top: 0; 
    left:47%; 
    padding:2px 5px; 
    z-index: 5000; 
    background-color:#CF4342; 
    color:#fff; 
} 
+0

Est-ce que quelque chose comme ça fonctionne avec getJSON de jquery? Peut-être envelopper dans une fonction et l'appeler, mais je ne suis pas sûr de savoir comment cela fonctionnerait avec le getJSON? – Coughlin

0

Kent,

Quelque chose comme cela fonctionnerait, affichez simplement un élément div simplifiant avec le texte affiché Loading ... puis affichez mes résultats JSON.

Ryan

Questions connexes