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 :

Rafraichir une page web avec une condition


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Points : 38
    Points
    38
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    Bonjour,

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(condition)
    {
       window.setInterval("reFresh()",300000);
    }

  3. #3
    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 : 48
    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
    +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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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...)

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Points : 38
    Points
    38
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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...)

  5. #5
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    C'est une condition en langage serveur (dans des tags JSP) ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Points : 38
    Points
    38
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="refresh" content=5;url="ma_page.jsp">


    (en le plaçant après la condition)

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Points : 38
    Points
    38
    Par défaut
    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 :/

  8. #8
    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 : 54
    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
    Euh... c'est-à-dire ? Tu essayes d'insérer une balise meta dans le body ???

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Points : 38
    Points
    38
    Par défaut
    Bonjour,

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  10. #10
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    Après la condition ? Pourquoi pas dans le if ?

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <head>
    <% if(...) { %>
       <script type="text/javascript">
        window.setInterval(reFresh, 300000);
       </script>
    <% } %>
    </head>

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Points : 38
    Points
    38
    Par défaut
    Merci pour la rapidité de votre réponse je vais essayer ça de ce pas.

  12. #12
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    Et comme l'a dit mon estimé collègue, un setTimeout serait plus logique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    window.setTimeout(reFresh, 300000);

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par vermine Voir le message
    Et comme l'a dit mon estimé collègue, un setTimeout serait plus logique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    window.setTimeout(reFresh, 300000);
    Si j'utilise cette méthode je dois quand même définir la fonction refresh non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  14. #14
    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 : 48
    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
    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

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Points : 38
    Points
    38
    Par défaut
    Merci

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Points : 38
    Points
    38
    Par défaut
    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 : 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
    <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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript">
    situé à la fin du code.

  17. #17
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    Effectivement. Entre les tags JSP ne peut y avoir que du code Java.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <%
       ...
       session.setAttribute("status",null); 
    %>
       <script type="text/javascript">
       window.setTimeout(reFresh, 3000);
       </script>
    <%
    }
    %>

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Points : 38
    Points
    38
    Par défaut
    Merci une fois de plus

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Points : 38
    Points
    38
    Par défaut
    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.

  20. #20
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <p class="signal">An error was done...<br>
    <%=session.getAttribute("error").toString(); %>
    </p><hr width="50%"><hr>

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Google Maps] Réaliser une page web avec une map google
    Par botch_nor dans le forum APIs Google
    Réponses: 14
    Dernier message: 20/10/2012, 14h48
  2. Réponses: 0
    Dernier message: 01/04/2009, 19h29
  3. Voir plusieurs pages web dans une page web
    Par lfa44 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 23/06/2007, 09h27
  4. [CSS] impression d'une page web en une page
    Par beegees dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 09/09/2006, 18h12
  5. diriger une page web vers une page php
    Par moonia dans le forum Langage
    Réponses: 7
    Dernier message: 11/04/2006, 11h41

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