IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Gestion bouton de chargement


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 519
    Par défaut Gestion bouton de chargement
    Bonjour,

    Je souhaiterais afficher un bouton de chargement pendant qu'une fonction ajax s'éxécute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="charge" style="visibility:hidden;">Chargement en cours</div>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function Verif ()
    {
    	$.colorbox({href:"ajax/verif.php"});
    	//-
    	$('#charge').ajaxStart(function(request, settings) { $(this).css("visibility", "visible") });
    	$('#charge').ajaxStop(function(request, settings) { $(this).css("visibility", "hidden") });
    }
    L’exécution prend 2 ou 3 secondes et j'aimerai que la div "Charge" s'affiche pendant le chargement.

    Merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2008
    Messages : 49
    Par défaut
    Avec ce code ca fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <html>
    <head>
    <script type="text/javascript">
    $(document).ready(function(){
     $('#ajaxBusy').ajaxStart(function(){
      $(this).show();
     }).ajaxStop(function(){
      $(this).hide();
     });
    });
    </script>
    </head>
    <body>
    <div id="ajaxBusy" style="display:none"><p><img src="ajax-loading.gif"></p></div>
    </body>
    </html>

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 519
    Par défaut
    Ok merci,

    En faite il ne fallait pas mettre les AjaxStart et AjaxStop dans la fonction.

    Cependant, ça fonctionne sous Opera et Firefox mais pas sous Safari, IE et Chome, ce problème est-il connu ?

    Merci

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 207
    Par défaut
    Et si tu utilises les paramètres de colorbox ça ne serait pas mieux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $(document).ready(function(){
    	$.colorbox({
    		href:"ajax/verif.php",
    		onOpen: function(){
    			$('#ajaxBusy').show();
    		},
    		onComplete: function(){
    			$('#ajaxBusy').hide();
    		}
    	});
    });

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 519
    Par défaut
    Citation Envoyé par scourjean Voir le message
    Et si tu utilises les paramètres de colorbox ça ne serait pas mieux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $(document).ready(function(){
    	$.colorbox({
    		href:"ajax/verif.php",
    		onOpen: function(){
    			$('#ajaxBusy').show();
    		},
    		onComplete: function(){
    			$('#ajaxBusy').hide();
    		}
    	});
    });
    Merci, mais toujours pareil, ça fonctionne sous Firefox mais pas sous Chrome.

    Sous Chrome, IE et Safari il y a une sensation de "Freeze" de la page très désagréable.

    J'ai un peu modifié mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function Verif ()
    {
    	$.ajax({
    		type: 'GET',
    		url: 'ajax/verif.php', 
    		async: false
    	});
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $(function(){
    	$('#charge').ajaxStart(function() { $(this).show(); });
    	$('#charge').ajaxStop(function() { $(this).hide(); });
    });
    Ce qui est bizarre, c'est que l'image loading ne s'affiche pas lors du 1er chargement, mais lorsque que je reclic sur le bouton une fois le 1er chargement passé, l'image s'affiche bien.

    Merci

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 519
    Par défaut
    Le problème viendrait de :

    Car quand celui ci est retiré, le bouton loading apparaît bien.

    async (booléen): par défault, toutes les requêtes sont asynchrones (ce paramètres vaut true par défaut). Si vous avez besoin de requêtes synchrones, passez cette fonction à false. A noter que les requêtes synchrones bloque temporairement le naviguateur de l'utilisateur tant que la requête n'est pas terminée.
    http://jquery.developpeur-web2.com/d...jax/$.ajax.php

    Le problème viendrait-il de là ?

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion bouton précédent sur formulaire
    Par trifly dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 15/03/2011, 01h52
  2. Gestion bouton enregistrer bindingsource
    Par Ricavir dans le forum Windows Forms
    Réponses: 5
    Dernier message: 27/08/2008, 17h08
  3. boutons et chargement d'images
    Par maniwot dans le forum Flash
    Réponses: 1
    Dernier message: 05/05/2008, 21h42
  4. Réponses: 1
    Dernier message: 25/07/2007, 15h45
  5. Réponses: 3
    Dernier message: 05/10/2006, 20h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo