retarder la diffusion d'un ajax chargement gif à l'aide de jQuery
Quelle est la meilleure façon de mettre un délai sur la présentation d'un ajax-loader gif. Lorsque je clique sur un bouton, le chargeur de gif montre et se cache même si le temps est à quelques centaines de milli-secondes, ce qui donne au navigateur une sorte de tremblement. Ce que je veux, c'est-à-dire montrer le gif si cela prend plus de dire 1000 milli-secondes pour terminer la requête ajax.
<script type="text/javascript">
$(document).ready(function() {
$('#loader').hide();
$('#btnGetPeople').click(function() {
$('#loader').show();
$.getJSON("/User/GetName/10",
null,
function(data) { showPerson(data); });
});
});
function showPerson(data) {
alert(data);
$('#loader').hide();
}
</script>
Mon chargeur div contient....
<div id="loader"><img alt="" src="/content/ajax-loader.gif" /></div>
Quelle est la meilleure technique pour y parvenir?
OriginalL'auteur Rippo | 2009-12-05
Vous devez vous connecter pour publier un commentaire.
Comme vous pouvez le voir, j'ai ajouté un délai de retard montrant 300ms. Si l'ajax est plus rapide que le délai est annulé avant que le chargeur est vraiment montré.
LOL... c'est ce que je peux avoir pour être non conventionnel. Bonne réponse @gigue
jQuery est tellement cool!
OriginalL'auteur jitter
Voici une façon amusante de le faire. Remplacer
$loader.show()
:Et votre commande masquer cette:
Juste une coutume
data
attribut de garder leint
retourné à partir desetTimeout
liés à notre objet DOM. Il est ceci ou déclarer une variable comme @gigue. Je voulais juste montrer un moyen de le faire avec jQuery.ne fonctionne que lorsque le passé de la même
integer
renvoyé à partir de lasetTimeout
fonction. Depuis que je suis le stockage de lainteger
personnalisé dans undata
attribut, ça marcherait bien.Doh! Oublié la durée du délai d'attente... la mise à jour de ma réponse 🙂
+1 pour moi, merci quand même
OriginalL'auteur Doug Neiner
Vous pouvez aussi faire comme cela.
OriginalL'auteur user1638397
Pensais que je voudrais partager quelque chose que j'ai fait pour cela. J'ai eu une situation où j'avais besoin de faire plus que simplement afficher ou masquer un élément. J'ai donc utilisé lier à créer des événements personnalisés pour le chargeur:
OriginalL'auteur fehays