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 :

Afficher une boite de dialogue pendant le chargement d'une page


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut Afficher une boite de dialogue pendant le chargement d'une page
    Bonjour

    Oui, je suis débutant, désolé

    Le but du jeu de ma fonction boite serait d'afficher une boite de dialogue pendant le chargement d'une page php.

    Dites le moi de suite si je me trompe complètement. Vu que je passe par le serveur, il me semble que je dois passer par XMLHttpRequest. une fois l'objet créé, dans ma fonction boite, je tente depuis ce matin d'afficher cette boite de dialogue (donc d'interrompre le chargement de la page, puis de la reprendre normalement)

    qu'en pensez vous?

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    <html>
    <head>
    <script type="text/javascript">
     
    //je crée mon objet XMLHttpRequest
     
    function getXhr(){
                                    var xhr = null; 
    				if(window.XMLHttpRequest) // Firefox et autres
    				   xhr = new XMLHttpRequest(); 
    				else if(window.ActiveXObject){ // Internet Explorer 
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			            } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { // XMLHttpRequest non supporté par le navigateur 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    				} 
                                    return xhr
    			}
     
    //ma fonction boite qui va évaluer l'état du serveur et normalement afficher la boite
     
    function boite()
    {
    	var xhr = getXhr()
    	if(xhr.readyState == 3 && xhr.status == 200) // les données sont en train d'être reçues, donc c'est le moment pour afficher ma boite
    	{
    	alert(xhr.responseText);
    	}
     
    //la, je cale totalement
    	alert(xhr.responseText);
     
    }
    </script>
    </head>
     
    <body onload="boite()">
    kkkk
    </body>
    </html>
    voici le texte de l'erreur
    Détails de l’erreur de la page Web

    Message*: Les données nécessaires pour terminer cette opération ne sont pas encore disponibles.
    _____________________________________________
    Tours Football Club - Turonorum Civitas Libera

    Content pas content de ma réponse? N'hésitez pas votez !!

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Déjà, il y a un truc que tu ne sembles pas saisir...
    Citation Envoyé par Titre
    Afficher une boite de dialogue pendant le chargement d'une page
    Citation Envoyé par Code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="boite()">
    Le onload étant déclenché lorsque la page est chargée, c'est pas comme ça que tu afficheras un message pendant le chargement...

    Quant à ta fonction boite(), heu... j'imagine que tu n'as jamais prit le temps de lire un tuto sur AJAX...
    TUTORIELS AJAX
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 139
    Points : 171
    Points
    171
    Par défaut
    Tu as une page très lourde à charger et tu aimerais un message qui fasse patienter ?
    A priori, tu n'as pas besoin de le faire en ajax. Un appel javascript juste après le <body> pour afficher ta boite, un appel javascript juste avant le </body> pour la cacher et ça devrait être bon.

  4. #4
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Le onload étant déclenché lorsque la page est chargée, c'est pas comme ça que tu afficheras un message pendant le chargement...
    Je pensais que cet évênement se faisait justement au chargement de la page
    Quant à ta fonction boite(),

    Citation Envoyé par Bovino Voir le message
    heu... j'imagine que tu n'as jamais prit le temps de lire un tuto sur AJAX...
    TUTORIELS AJAX
    bin heu pourant je ne fais que ça depuis ce matin ...

    En fait, c'est dans ma page de verification de formulaire. Lorsqu'il est bon(éléments vérifiés et enregistrés), j'aimerai proposer une redirection par boite de dialogue, avant de revenir (par défaut) à la page de saisie origninale.

    Sinon, c'est pas grave, je peux le faire en créant une fonction php(sur ma page de saisie) qui proposerait cela

    ma page de verifformulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //à la fin du code
    $_SESSION['ok'] = "ok";
    header(pagesaie.php);
    die()
    ma page saisieFormulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if (isset($_SESSION['ok']))
    {
    echo 'function ConfirmMessage() 
    {
           if (confirm("Voulez-vous changer la couleur de fond de page ?")) 
    	{
               document.location.href="";
           }
       }';
    _____________________________________________
    Tours Football Club - Turonorum Civitas Libera

    Content pas content de ma réponse? N'hésitez pas votez !!

  5. #5
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Bonjour !

    Je vais soulever un point de vue qui touche presque à la philosophie du web : les internautes ont l'habitude bien ancrée, et plus ou moins consciente, que la page qu'ils visitent met un certain temps à charger. Pourquoi vouloir leur indiquer ce qu'ils savent déjà ?

    D'autre part, l'internaute est par nature impatient. Si le temps de chargement est trop long, il aura tendance à délaisser le site (pas tous les internautes bien sûr, mais en général). À moins que tu proposes un service qui vaut et justifie un gros temps de chargement, je ne crois pas qu'ajouter un boîte de dialogue suffise à retenir l'attention du visiteur.

    Sinon, pour entrer dans le vif du sujet, j'ai l'intuition qu'Ajax ne résoudra pas ton problème. L'approche de Bewidia me semble la meilleure.

    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  6. #6
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Non, ce n'est pas absolument pas pour faire patienté le visiteur pendant que la page se charge...

    petit résumé en schéma :

    ça c'est que j'ai actuellement :

    pageFormulaire => pageverifFormulaire => pageFormulaire =(1)=> pageAutre Formulaire

    (1) ouverture d'une boite de dialogue une fois la pageFormulaire de nouveau complètement chargé

    J'aimerai :

    pageFormulaire => pageverifFormulaire => pageAutreFormulaire
    j'écris plein de choses en blanc pour(si accord client par boite de dialogue)
    =>pageFormulaire
    (si refus du client par boite de dialogue)
    _____________________________________________
    Tours Football Club - Turonorum Civitas Libera

    Content pas content de ma réponse? N'hésitez pas votez !!

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 139
    Points : 171
    Points
    171
    Par défaut
    Hum, à priori tu n'as pas besoin de Javascript non plus.

    Page formulaire (vue) -> validation formulaire(serveur)
    Page recapitulant le résultat du serveur + choix "Accepter/Refuser" (vue) -> validation choix (serveur)

    (ton choix accepter/refuser étant un formulaire avec un bouton radio ou autre)

    Accepter -> page formulaire 2
    Refuser -> page formulaire 1

    Non ?

  8. #8
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Citation Envoyé par bewidia Voir le message
    Hum, à priori tu n'as pas besoin de Javascript non plus.

    Page formulaire (vue) -> validation formulaire(serveur)
    Page recapitulant le résultat du serveur + choix "Accepter/Refuser" (vue) -> validation choix (serveur)

    (ton choix accepter/refuser étant un formulaire avec un bouton radio ou autre)

    Accepter -> page formulaire 2
    Refuser -> page formulaire 1

    Non ?
    Oui, j'avais aussi penser à mettre deux boutons d'envoi sur mon formulaire, ou une liste déroulante avec différents choix possible comme sur l'insertion de données sur phpmyadmin, mais ça alourdit un peu le formulaire. Du coup, je pensais passer directement grâce au serveur.

    Vu mes connaissances, je vais rester sur cette solution ..

    bewidia Watilin Bovino
    _____________________________________________
    Tours Football Club - Turonorum Civitas Libera

    Content pas content de ma réponse? N'hésitez pas votez !!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/07/2010, 14h46
  2. Réponses: 3
    Dernier message: 29/11/2006, 10h45
  3. [VB]Afficher une liste dans une boite de dialogue
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 05/04/2006, 11h30
  4. afficher dans une boite de dialogue la valeur d'une variable
    Par micknic dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/07/2005, 09h25
  5. comment afficher une boite de dialogue simple ?
    Par Ekimasu dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 08/06/2004, 16h46

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