Webmaster Hub: Afficher un loader.gif avant exécution ajax - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Afficher un loader.gif avant exécution ajax

#1 L'utilisateur est hors-ligne   siriu 

  • Groupe : Actif
  • Messages : 38
  • Inscrit(e) : 28-septembre 10

Posté 11 janvier 2011 - 11:17

Bonjour,

J'utilises un peu de jQuery / Ajax sur un site avec des fonctions de ce type

function addCategory(){
	
$.ajax({
       type: "POST",
       url: "../../ajax_category.php",
       cache: false,
       data : 'action=detail',
       success: function(msg){
          document.getElementById('centre').innerHTML = msg;
          }
     });
}


Quel est la meilleur façon de faire pour afficher pendant 2/3 secondes une images loader.gif avant l'affichage dans la div "centre" ?

Merci d'avance pour votre aide
0

#2 L'utilisateur est hors-ligne   captain_torche 

  • Danacol / Orangina rouge
  • Voir le blog
  • Groupe : Admin
  • Messages : 6 722
  • Inscrit(e) : 08-février 06
  • Genre:Homme
  • Localisation:Savigny / Orge

Posté 11 janvier 2011 - 11:34

Personnellement, je procède de la manière suivante :
- Avant l'appel AJAX, je vide le conteneur et je lui attribue une classe "loading".
- Dans mon fichier CSS, j'attribue une hauteur fixe et une image de fond (le gif en question) centrée à cette classe
- Dans la fonction success, je supprime la classe et j'ajoute le résultat au conteneur

Soit dit en passant, c'est dommage de faire côtoyer jQuery et des horreurs comme innerHTML(). Pour mémoire, innerHTML n'affecte pas le DOM : il est donc impossible de manipuler quoi que ce soit qui aurait été créé via cette fonction ultérieurement en JavaScript.
Donc, plutôt que d'utiliser ça :
document.getElementById('centre').innerHTML = msg;

Je ne saurais que te conseiller de faire ça :
$('#centre').append(msg);

Vous avez rêvé cette nuit ? Partagez vos rêves sur l'Onironaute !
Bijoux fantaisie
Recherche nounou
0

#3 L'utilisateur est hors-ligne   siriu 

  • Groupe : Actif
  • Messages : 38
  • Inscrit(e) : 28-septembre 10

Posté 11 janvier 2011 - 11:44

merci pour la réponse, je visualise bien la démarche, mais aurais tu un exemple avec un bout de code afin que je vois la syntaxe à utiliser, je dois me former très prochainement à jQuery mais pour le moment je ne le connais pas encore :blush:
0

#4 L'utilisateur est hors-ligne   captain_torche 

  • Danacol / Orangina rouge
  • Voir le blog
  • Groupe : Admin
  • Messages : 6 722
  • Inscrit(e) : 08-février 06
  • Genre:Homme
  • Localisation:Savigny / Orge

Posté 11 janvier 2011 - 11:53

On vide le conteneur et on lui applique une classe "loading" :
$('#conteneur').empty().addClass('loading');

Suppression de la classe "loading" :
$('#conteneur').removeClass('loading');


Pour plus d'infos sur les fonctions de jQuery, j'ai toujours ce document sous la main : jQuery 1.4.2 visual Cheat Sheet
Vous avez rêvé cette nuit ? Partagez vos rêves sur l'Onironaute !
Bijoux fantaisie
Recherche nounou
0

#5 L'utilisateur est hors-ligne   siriu 

  • Groupe : Actif
  • Messages : 38
  • Inscrit(e) : 28-septembre 10

Posté 11 janvier 2011 - 12:15

Merci Captain pour ces explications et le lien très utile :thumbsup:
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)