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 09/05/2011, 15h27   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2008
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 101
Points : 14
Points : 14
Par défaut Rafraichir une page web avec une condition

Bonjour,

j'aurais voulu savoir s'il était possible d'appeler une fonction de rafraîchissement de page suite à la validation d'une condition, j'ai trouvé sur internet la fonction permettant de raffraîchir une page web toutes les X secondes, mais j'aimerais que le rafraîchissement se fasse que sous une condition précise.

La fonction de rafraîchissement :


Code html :
1
2
3
4
5
6
7
8
9
10
11
12
<HEAD>
 
<script type="text/javascript">
 
function reFresh() {
  location.reload(true)
}
 
window.setInterval("reFresh()",300000);
 
</script>
</HEAD>


J'aimerais pouvoir appeler cette fonction sous une condition précise, est ce possible ?
if (condition) {
rafraîchir la page dans X secondes }

PS: je travail sur un format JSP.

Merci à vous
Thomas77380 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 15h31   #2
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 686
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 686
Points : 5 757
Points : 5 757
Bonjour,

La condition intervient quand ? Quoiqu'il arrive ça ressemblera à quelque chose du genre :

Code :
1
2
3
4
5
 
if(condition)
{
   window.setInterval("reFresh()",300000);
}
__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 15h42   #3
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 074
Points : 4 074
+1 avec vermine ^^ (en fait il te reste surtout à formaliser ta condition en fonction de tes règles "métier", et là nous n'avons pas d'éléments)

A cette mini exception près :
Code :
1
2
3
if(condition) {
   window.setInterval(reFresh, 300000);
}
...histoire de se rappeler de ne jamais passer une chaine en premier param de setTimeout / setInterval

(D'ailleurs, un simple setTimeout aurait très bien fait l'affaire dans la mesure où, la page se rechargeant, le contexte JS est perdu puis recréé avec un nouveau compte à rebours...)
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/05/2011, 15h43   #4
Candidat au titre de Membre du Club
 
Inscription : novembre 2008
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 101
Points : 14
Points : 14
Merci pour votre réponse,

la condition intervient dans le corps du code (entre les balises body).

Je vais essayer d'être plus précis en éditant tout ça (je ne peux pas copier/coller le code de la page).

La condition apparait une première fois en tête de page (<head> condition </head>) puis deux fois dans le corps de la page (<body> </body>).


La voici:


Code html :
1
2
3
4
5
6
7
8
9
10
11
 
<% 	if ( (session.getAttribute("status") != null) 
		&& (session.getAttribute("status").equals(new Integer(42)) ) ) {
%>
	<p class="signal">An error was done...<br>
<%	out.println(session.getAttribute("error").toString());
%>
	</p><hr width="50%"><hr>
<%	session.setAttribute("status",null); 
	}
%>


la class signal est une class css contenant le message d'erreur et ses propriétés (couleur ect...)
Thomas77380 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 15h48   #5
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 686
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 686
Points : 5 757
Points : 5 757
C'est une condition en langage serveur (dans des tags JSP) ?
__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 15h50   #6
Candidat au titre de Membre du Club
 
Inscription : novembre 2008
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 101
Points : 14
Points : 14
Oui (désolé j'ai édité un peu tard),

si l'appel a la fonction ne marche pas j'avais pensé à utiliser ceci pour raffraichir ma page :

Code html :
<meta http-equiv="refresh" content=5;url="ma_page.jsp">


(en le plaçant après la condition)
Thomas77380 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 16h56   #7
Candidat au titre de Membre du Club
 
Inscription : novembre 2008
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 101
Points : 14
Points : 14
Pour le moment j'ai éssayé les deux et aucune des deux méthodes ne fonctionnent, lorsque je met la balise meta à la suite du test (pas dedans) cela ne fait rien, et lorsque je l'insère entre les balises du langage serveur la balise n'est plus reconnue :/
Thomas77380 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 17h12   #8
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 806
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 806
Points : 35 803
Points : 35 803
Euh... c'est-à-dire ? Tu essayes d'insérer une balise meta dans le body ???
__________________
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 10/05/2011, 10h14   #9
Candidat au titre de Membre du Club
 
Inscription : novembre 2008
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 101
Points : 14
Points : 14
Bonjour,

je le l'insère bien dans le "head" de ma page comme ceci, mais cela ne marche pas :

Code :
1
2
3
4
5
6
7
8
<% 	if ( (session.getAttribute("status") != null) 
		&& (session.getAttribute("status").equals(new Integer(42)) )
 
	 ) { %>
<% } %>
	<meta http-equiv="refresh" content="10;URL=formdepart.jsp">
 
</head><body>
Thomas77380 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 10h19   #10
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 686
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 686
Points : 5 757
Points : 5 757
Après la condition ? Pourquoi pas dans le if ?

Code html :
1
2
3
4
5
6
7
 
<% 	if ( (session.getAttribute("status") != null) 
		&& (session.getAttribute("status").equals(new Integer(42)) )
 
	 ) { %>
              <meta http-equiv="refresh" content="10;URL=formdepart.jsp">
<% } %>

Sinon, en Javascript ce serait quelque chose du style :

Code html :
1
2
3
4
5
6
7
8
 
<head>
<% if(...) { %>
   <script type="text/javascript">
    window.setInterval(reFresh, 300000);
   </script>
<% } %>
</head>
__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 10h20   #11
Candidat au titre de Membre du Club
 
Inscription : novembre 2008
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 101
Points : 14
Points : 14
Merci pour la rapidité de votre réponse je vais essayer ça de ce pas.
Thomas77380 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 10h22   #12
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 686
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 686
Points : 5 757
Points : 5 757
Et comme l'a dit mon estimé collègue, un setTimeout serait plus logique :

Code :
1
2
 
window.setTimeout(reFresh, 300000);
__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 10h45   #13
Candidat au titre de Membre du Club
 
Inscription : novembre 2008
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 101
Points : 14
Points : 14
Citation:
Envoyé par vermine Voir le message
Et comme l'a dit mon estimé collègue, un setTimeout serait plus logique :

Code :
1
2
 
window.setTimeout(reFresh, 300000);
Si j'utilise cette méthode je dois quand même définir la fonction refresh non ?

Code :
1
2
3
4
5
6
 
<script type="text/javascript">
 
function reFresh() {
  location.reload(true)
}
Et si oui où se fera cette définition ? dans le head au dessus de ma condition ?
Thomas77380 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 10h52   #14
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 074
Points : 4 074
Citation:
Envoyé par Thomas77380 Voir le message
Si j'utilise cette méthode je dois quand même définir la fonction refresh non ?

Et si oui où se fera cette définition ? dans le head au dessus de ma condition ?
Oui aux deux questions
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 10h57   #15
Candidat au titre de Membre du Club
 
Inscription : novembre 2008
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 101
Points : 14
Points : 14
Merci
Thomas77380 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 11h24   #16
Candidat au titre de Membre du Club
 
Inscription : novembre 2008
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 101
Points : 14
Points : 14
Désolé de revenir à la charge mais comme aucun des procédés ne semblent fonctionner je me demandais si je pouvais intégrer le code javascript dans le body de cette manière (la condition est localisée a plusieurs endroits):


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script type="text/javascript">
 
	function reFresh() {
  	location.reload(true)
	}
	</script>	
 
<% 	if ( (session.getAttribute("status") != null) 
		&& (session.getAttribute("status").equals(new Integer(42)) ) ) {
%>
	<p class="signal">An error was done...<br>
<%	out.println(session.getAttribute("error").toString());
%>
	</p><hr width="50%"><hr>
<%	session.setAttribute("status",null); 
	<script type="text/javascript">
         window.setTimeout(reFresh, 3000);
   	</script>
	}
%>

Je ne suis pas sur que cela sois correcte car le code couleur de mon éditeur ne reconnait pas le
Code :
<script type="text/javascript">
situé à la fin du code.
Thomas77380 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 11h35   #17
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 686
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 686
Points : 5 757
Points : 5 757
Effectivement. Entre les tags JSP ne peut y avoir que du code Java.

Code html :
1
2
3
4
5
6
7
8
9
10
11
 
<%
   ...
   session.setAttribute("status",null); 
%>
   <script type="text/javascript">
   window.setTimeout(reFresh, 3000);
   </script>
<%
}
%>
__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 11h37   #18
Candidat au titre de Membre du Club
 
Inscription : novembre 2008
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 101
Points : 14
Points : 14
Merci une fois de plus
Thomas77380 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 14h19   #19
Candidat au titre de Membre du Club
 
Inscription : novembre 2008
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 101
Points : 14
Points : 14
Malgré tout ça rien n'y fait ça ne marche pas, je vais détailler rapidement le problème auquel je suis confronté peu être l'avez vous déjà eu. En fait je travail sur une page web en JSP avec différents servelts. Sur ma page je prends en entrée un fichier et je vérifie son format et s'il est vide ou non, si une des deux conditions est remplie alors j'affiche un message d'erreur.
Lorsque je test mon fichier.war (contenant le code java web sous forme d'archive interprétable par tomcat) avec tomcat en local tout fonctionne bien, j'ai bien l'affichage des erreurs selon les cas, mais quand je charge mon application sur le serveur tomcat d'OVH, et que je lance mon programme, si l'une des conditions est trouvée (mauvais format / vide) alors il n'affiche rien et la page boucle, je dois la rafraîchir si je veux voir les messages d"erreurs s'afficher (d'où ce post en fait).

Je n'insisterai pas plus, j'expose les choses au cas où vous auriez une idée.
Thomas77380 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 14h30   #20
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 686
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 686
Points : 5 757
Points : 5 757
Par défaut Ha non, Pluto c'est le chien de Mickey

Le system.out affiche sur votre page web l'erreur ? Les deux tomcat ont une sortie différente dirait-on.

Essayez plutôt :

Code html :
1
2
3
4
 
<p class="signal">An error was done...<br>
<%=session.getAttribute("error").toString(); %>
</p><hr width="50%"><hr>
__________________
Elen Poukram - Isegoria - Sandawe
vermine 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 11h01.


 
 
 
 
Partenaires

Hébergement Web