jQuery - afficher le chargement de l'image seulement si l'appel ajax prend plus d'une seconde?
Est-il possible de montrer le "Chargement.." animation seulement si l'appel ajax prend plus que de dire, une seconde? Certains de mes appels ajax sont assez vite, mais je continue à voir l'icône de chargement pour une fraction de seconde avant qu'il ne disparaisse. Peut-être que c'est juste moi, mais je trouve gênant. Je ne veux pas supprimer complètement si. Toutes les suggestions? Voici mon code -
$('#loading').hide()
.ajaxStart(function() {
$(this).show();
})
.ajaxStop(function() {
$(this).hide();
});
<div id="loading">
<img alt="Loading, please wait.." src="/content/images/spinner.gif" />
</div>
Vous devez vous connecter pour publier un commentaire.
Vous devriez mettre votre code dans un minuteur:
ajaxStart
s'exécute,timer
ne sera pas défini. En passant undefinedclearTimeout
ne semble pas être en mesure d'élever les erreurs, je ne l'ai pas testé assez, j'ai donc décidé de plutôt vérifier d'abord sitimer
a réellement un id. Nore quetimer && clearTimeout(timer);
est équivalent àif(timer) { clearTimeout(timer); }
.Vous pouvez utiliser un
setTimeout()
.element
comme argument. 2) Ne pas passerelement
puisque c'est undefined passe -this
. 3) cela ne fonctionne pas dans IE, car il ne vous permet pas de passer des arguments dans ce mode.