2010-04-22 4 views
1

Comment affichez-vous ajax gif uniquement pour une demande spécifique? Par exemple, ma page appelle un service web toutes les 30 secondes dans un arrière-plan, et je ne veux pas montrer le gif pendant ce rappel. D'un autre côté je veux montrer le gif, quand je fais des requêtes ajax manuelles.Comment afficher ajax loading gif uniquement pour une requête spécifique?

J'utilise jQuery.

edit: Je n'ai pas configuré le gestionnaire global comme indiqué ici http://api.jquery.com/ajaxStart/, juste en attachant à l'événement .ajaxStart. Mais je ne veux pas montrer/cacher le gif manuellement sur chaque demande aussi. J'ai besoin d'une solution générique.

+0

Pouvez-vous fournir un peu plus d'informations? Où dans votre jQuery définissez-vous cette animation de chargement? Un extrait ou deux de code serait extrêmement utile. – justkt

Répondre

2
$('#manualRefresh').click(function(){ 
    $('#myContainer').html('<img src="my-ajax-gif.gif">'); 
    $.get(..., function(data){ ('#myContainer').html(data) }); 
}); 

Comme ça?

+0

merci, Ben, mais s'il vous plaît voir ma question éditée. J'ai besoin d'une solution générale, je ne veux pas dupliquer le code show/hide à chaque demande. –

+0

Qu'en est-il de prendre la fonction anonyme fournie par Ben et de la placer dans une fonction (ou un plugin, si vous en avez besoin dans plusieurs endroits) qui affiche votre gif et soumet votre requête? – justkt

+0

vous avez raison, KISS tel qu'il est. merci, Ben, merci justkt. –

1

S'il vous plaît, essayez ceci:

$('#save').click(function(){ 
    $('#ShowLoading').show(); 
    $.ajax(..., success:function(data){....$('#ShowLoading').hide();}, 
      error:function(){....$('#ShowLoading').hide();}); 
}); 

HTH

0

J'utilise le BlockUI plugin, rend assez facile vraiment. Ceci est une simple fonction wrapper j'ai écrit pour un code de démonstration:

function wjBlockUI(msg) { 

var defaultMsg = '<img src="../images/activity.gif" />'; 

if (null !== msg) { 
    defaultMsg = msg 
} 

$.blockUI({ overlayCSS: { backgroundColor: '#aaa' }, message: defaultMsg }); 

}

Questions connexes