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

JavaScript Discussion :

Message de Chargement ne s'affiche pas si je ne mets pas d'alert


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 12
    Points
    12
    Par défaut Message de Chargement ne s'affiche pas si je ne mets pas d'alert
    Salut, j'essaye de faire quelque chose de simple: afficher un div en début d'affichage d'une fonction et le cacher à la fin de l'execution de celle ci.

    En HTML j'ai:

    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
     
    <input id="linkP2" type="button" value="Prévisualiser" class="Button2_Small" runat="server" onclick="sauvegarde();this.parentNode.click();" />
     
            <div runat="server" id="divLoadingWaitingMsg" style="Z-INDEX: 450; FILTER: alpha(opacity:65); LEFT: 0px; MARGIN: 0px; WIDTH: 100%; CURSOR: wait; POSITION: absolute; TOP: 0px; HEIGHT: 100%; BACKGROUND-COLOR: #ffffff; display: none;">
            	<table height="100%" cellSpacing="0" cellPadding="0" width="100%" align="center" border="0">
            		<tr>
            			<td id="tdWaitMsg" vAlign="middle" align="center">
            				<div class="divLoadingMessageDisplayed">
            					<span>Veuillez patienter,<br>
            						chargement en cours...</span>
            					<div id="divImgLoadingPleaseWait"></div>
            				</div>
            			</td>
            		</tr>
            	</table>
            </div>
    Au niveau JS:

    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
    17
     
    function sauvegarde()
    {
         XLOAD(true);
         // LONG TRAITEMENT
         XLOAD(false);
    }
    function XLOAD(action)
    {
        if(action==true) {
            document.getElementById("divLoadingWaitingMsg").style.display = "block";
            alert("chargement... appuyez sur OK");
        }
        else {
            document.getElementById("divLoadingWaitingMsg").style.display = "none";  
        }
    }
    Je suis obligé de laisser le alert(...) qui est modal si je veux que l'effet désiré (message de chargement) se réalise. Si j'enlève l'alert, il n'y aura aucun affichage du div.

    Est-ce que vous avez une idée pourquoi?

  2. #2
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Le DOM ne doit pas avoir le temps de s'actualiser, essaie de placer la deuxième partie dans un mini setTimeOut, genre :
    Code javascript : 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
    17
    18
    function sauvegarde()
    {
         XLOAD(true);
         setTimeout(function() {
            // LONG TRAITEMENT
            XLOAD(false);
         }, 100);
    }
    function XLOAD(action)
    {
        if(action==true) {
            document.getElementById("divLoadingWaitingMsg").style.display = "block";
            //alert("chargement... appuyez sur OK");
        }
        else {
            document.getElementById("divLoadingWaitingMsg").style.display = "none";  
        }
    }
    On pourrait d'ailleurs écrire ta fonction XLOAD comme ceci :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function XLOAD(action)
    {
        document.getElementById("divLoadingWaitingMsg").style.display = action ? "": "none";
    }

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    Merci! Problème résolu

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

Discussions similaires

  1. Messages d'erreur ne s'affichent pas
    Par j_esti dans le forum JSF
    Réponses: 1
    Dernier message: 30/08/2013, 21h58
  2. Message d'erreur ne s'affiche pas en VbScript
    Par MAKSIM dans le forum VBScript
    Réponses: 2
    Dernier message: 24/07/2013, 16h55
  3. Afficher message avant chargement page
    Par BRUNO71 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/05/2012, 22h04
  4. Afficher un message de chargement pendant une certaine durée
    Par camcam8782 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/02/2011, 20h13
  5. [MySQL] Message d'erreur ne s'affiche pas !
    Par CaLeDo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/07/2007, 01h10

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