Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/09/2011, 11h54   #1
Membre éclairé
 
Avatar de ledisciple
 
Homme François
observateur de nuage niveau 2.3
Inscription : août 2008
Messages : 546
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 27
Localisation : France

Informations professionnelles :
Activité : observateur de nuage niveau 2.3

Informations forums :
Inscription : août 2008
Messages : 546
Points : 313
Points : 313
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 :
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
Citation:
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
ledisciple est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 12h04   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
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 :
<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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 12h05   #3
Membre habitué
 
Inscription : octobre 2009
Messages : 122
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 122
Points : 116
Points : 116
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.
bewidia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 12h33   #4
Membre éclairé
 
Avatar de ledisciple
 
Homme François
observateur de nuage niveau 2.3
Inscription : août 2008
Messages : 546
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 27
Localisation : France

Informations professionnelles :
Activité : observateur de nuage niveau 2.3

Informations forums :
Inscription : août 2008
Messages : 546
Points : 313
Points : 313
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 :
1
2
3
4
5
 
//à la fin du code
$_SESSION['ok'] = "ok";
header(pagesaie.php);
die()
ma page saisieFormulaire

Code :
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
ledisciple est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 13h42   #5
Membre Expert
 
Avatar de Watilin
 
Homme Matilin Torre
Étudiant
Inscription : juin 2010
Messages : 679
Détails du profil
Informations personnelles :
Nom : Homme Matilin Torre
Âge : 23
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 679
Points : 1 202
Points : 1 202
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.

__________________
Disposition de clavier ergonomique française : Bépo
Watilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 13h55   #6
Membre éclairé
 
Avatar de ledisciple
 
Homme François
observateur de nuage niveau 2.3
Inscription : août 2008
Messages : 546
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 27
Localisation : France

Informations professionnelles :
Activité : observateur de nuage niveau 2.3

Informations forums :
Inscription : août 2008
Messages : 546
Points : 313
Points : 313
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
ledisciple est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 14h42   #7
Membre habitué
 
Inscription : octobre 2009
Messages : 122
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 122
Points : 116
Points : 116
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 ?
bewidia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 14h56   #8
Membre éclairé
 
Avatar de ledisciple
 
Homme François
observateur de nuage niveau 2.3
Inscription : août 2008
Messages : 546
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 27
Localisation : France

Informations professionnelles :
Activité : observateur de nuage niveau 2.3

Informations forums :
Inscription : août 2008
Messages : 546
Points : 313
Points : 313
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
ledisciple est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h37.


 
 
 
 
Partenaires

Hébergement Web