J'utilise le code suivant pour capturer tous les appels AJAX en cours à partir de mon application, afin de montrer un compteur occupé jusqu'à ce que l'appel soit terminé. Cela fonctionne bien lorsque les demandes sont bien espacées. Cependant, lorsque la requête est faite en succession rapide, certains appels AJAX ne sont pas enregistrés, ou les actions onCreate et onComplete sont éjectées en même temps, et plus souvent qu'autrement, le spinner occupé continue d'apparaître à l'écran , après tous les appels ont terminé avec succès. Y at-il un contrôle que je peux effectuer à la fin de l'appel, pour vérifier si l'élément est visible, je peux le cacher.Effect.toggle et appels AJAX
document.observe("dom:loaded", function() {
$('loading').hide();
Ajax.Responders.register({
//When an Ajax call is made.
onCreate: function() {
new Effect.toggle('loading', 'appear');
new Effect.Opacity('display-area', { from: 1.0, to: 0.3, duration: 0.7 });
},
onComplete: function() {
new Effect.toggle('loading', 'appear');
new Effect.Opacity('display-area', { from: 0.3, to: 1, duration: 0.7 });
}
});
});
Merci!
Merci! Fonctionne comme un charme. Les deux réponses suggérées par bmoeskau et Josh véhiculent la même idée! – Gunner4Life
C'est parce que les grands esprits se ressemblent ;-) – Josh