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 page et garder une variable


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Par défaut Rafraichir page et garder une variable
    Bonjour,

    J'ai ma page JSP qui se rafraichi toutes les minutes grace à response.setHeader.

    Ma JSP comporte un onglet, qui quand je clique dessus, devient visible ou invisible (style.display ).

    Le probleme est que lors du rechargement de la page, l'onglet se ferme tout le temps.

    Je me suis dit qu'il fallait alors que je fasse un booleen pour savoir si je dois laisser ouvert l'onglet. Sauf que je ne sais pas trop comment faire!

    Aidez-moi svp...

    Merci par avance pour vos réponses.
    Je suis en galère...

    Magicwill.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    tu peux rappeler la page via Javascript au lieu du header (en déclenchant un settimeout sur le onload du body).
    Tu pourras ainsi passer en paramètre l'id de l'onglet sélectionné pour le réafficher au rechargement.

    L'avantage du header est qu'il fonctionne même si JS est désactivé ...

    A+

  3. #3
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Par défaut
    Salut,

    Merci pour ta proposition.
    Cependant, d'après ce que j'ai lu sur internet...avec window.setTimeout, ça n'effectue pas un rechargement de la page... Mais juste un appel au bout de x temps d'une fonction JSP.

    Cependant, ma JSP, à travers du code Java et Tuxedo, fait des acces en base de donnée... Donc, j'ai besoin que les informations soient rechargées et donc que les champs HTML soient mis à jour...

    Peux-tu me confirmer que setTimeout fait un rechargement de la page?

    Merci pour ton aide.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par magicwill
    Peux-tu me confirmer que setTimeout fait un rechargement de la page?
    Il ne fait que ce que tu lui demandes
    Permet de lancer une fonction JS au bout d'un délai (en ms).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout("window.location.reload(true);", 30000); // true force le rechargement à partir du serveur (et non du cache du nav)
    recharge la page au bout de 30s ...

    A+

  5. #5
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Par défaut
    Salut à nouveau,

    Merci beaucoup pour ta réponse!
    Effectivement, on peut faire ce que l'on souhaite...

    La syntaxe exacte est cependant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onLoad="setTimeout('window.location.reload(true)', 60000);"
    Mais en fait, j'en viens à mon problème du debut... Mon onglet se replie au rechargement...
    Donc comemnt faire pour sauvegarder un champs hidden par exemple qui me dit si mon onglet est fermé ou pas?

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par magicwill
    Mais en fait, j'en viens à mon problème du debut... Mon onglet se replie au rechargement...
    Oui, on a dérivé !
    Ce n'est pas un reload() à faire.
    Il faut réappeler ton url complète (en y ajoutant ton hidden, par ex.), plus un dernier paramètre qui doit toujours être différent (pour forcer le rechargement à partir du serveur, toujours). On utilise généralement l'heure précise (s ou ms).

    Quant à l'éxactitude de la syntaxe, tu noteras que c'est strictement la même, sauf que tu l'appliques au onload
    Puisque tu aimes l'exactitude, les noms des évènements s'écrivent en minuscules ...

    A+

  7. #7
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    utilise l'attribut session de ta page...

  8. #8
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Par défaut
    Salut,

    Citation Envoyé par E.Bzz
    Puisque tu aimes l'exactitude, les noms des évènements s'écrivent en minuscules ...
    A+
    Ah..pour ça, c'est en fait Dreamweaver qui l'a fait automatiquement...d'où la majuscule...

    Sinon, je pense opter pour ta solution E.Bzz... car je ne sais pas utiliser l'attribut session (proposé par Matthieu2000)...

    Merci beaucoup!

  9. #9
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Par défaut
    Salut,

    Citation Envoyé par E.Bzz
    Il faut réappeler ton url complète (en y ajoutant ton hidden, par ex.), plus un dernier paramètre qui doit toujours être différent (pour forcer le rechargement à partir du serveur, toujours). On utilise généralement l'heure précise (s ou ms).

    A+
    Suite à ta réflexion, je me rends compte effectivement que mon rechargement ne s'effectue pas tout le temps.
    J'ai suivi ton conseil et mis en paramètre les secondes...Cependant, ça effectue un rechargement...et après..c'est tout... mon alert sur l'heure se lance deux fois, mais la page n'est pas rechargée la deuxieme fois...


    Voici mon code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    function rechargePage()
    {
    var time = new Date();
    var envoiDate = time.getSeconds();
    var envoiTab = tabOpened.join("#");
    alert(envoiDate);
    location.href="MaPage?tabOpened="+envoiTab +
    				"&date=" + envoiDate;
    }
     
    <BODY bgcolor="#FFFFFF" onLoad="setTimeout('rechargePage()', 10000);" >
    Comment faire pour que ma page soient rechargée toutes les 10 secondes?

    S'il faut encore un bout de code, dites-moi...Je vois pas ce qui cloche...

    Merci pour votre aide précieuse.

    Magicwill.

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par magicwill
    Cependant, ça effectue un rechargement...et après..c'est tout... mon alert sur l'heure se lance deux fois, mais la page n'est pas rechargée la deuxieme fois...
    Pas d'erreur ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var envoiTab = tabOpened.join("#");
    tabOpened est bien une variable globale ?

    A+

  11. #11
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Par défaut
    Salut,

    Non!! Pas d'erreur...!
    Ca affiche terminé pour le premier rechargement, et après , le deuxième alert, (toujours terminé) et aucun rafraichissement...Je sèche!

    Pour tabOpened, oui, c'est une variable globale, dans le sens où elle est placée hors des "function"... J'ai mis var tabOpened=new Array(); et j'ai remplis ...juste après la balise SCRIPT de javascript...

    Une idée?

  12. #12
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par magicwill
    Non!! Pas d'erreur...!
    La "notification des erreurs de script" (ou assimilé) de ton nav est bien activée ?

  13. #13
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Par défaut
    RE...

    (je suis sous IE)
    J'ai activé l'option dans options -> avancés -> notification des erreurs de script
    J'ai fermé toutes mes pages internet, et j'ai relancé... pas de changement, et pas d'erreur survenue.

    Je suis retourné dans les options, j'ai décoché une case "desactiver le debogage des scripts" + refermé tout IE et relancé...mais ca n'a rien changé au resultat final...pas de message d'erreur...

    Cependant, je sais que j'ai une erreur au niveau du chargement de la recupération de mon tableau... je fais un split, mais j'arrive à recuperer que ma premiere variable du tableau...crois-tu que cela puisse venir de là?

    Ps: mon problème reste toujours ce deuxième rafraichissement qui ne s'effectue pas... bizarre...

    Merci pour ton aide.

  14. #14
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par magicwill
    je fais un split, mais j'arrive à recuperer que ma premiere variable du tableau...crois-tu que cela puisse venir de là?
    Fort possible : généralement quand JS plante, JS bloque

    Fais un test sans le traitement de ton tableau, juste pour tester la mécanique de rechargement auto ...

    A+

  15. #15
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Par défaut
    re...

    Citation Envoyé par E.Bzz

    Fais un test sans le traitement de ton tableau, juste pour tester la mécanique de rechargement auto ...

    A+
    Merci merci merci!!! Déja..le rechargement auto...ca marche!
    (sans envoi du tableau)...

    Curieusement, j'ai pas envoyé la date dans location.href (les secondes)...et pourtant ça recharge bien la page à chaque fois...Visiblement, je n'ai pas la nécéssité d'envoyer les secondes...?

    Bon, je sais que c'est trop demander, (j'ai pas encore cherché) mais eventuellement, si tu as un bout de code dans la main pour savoir comment recup un tableau qui a été "join"...? J'utilise split, mais ca recup que la premiere valeur...bref...

    Merci pour ton aide..je commençais a desesperer que ca rechargeait pas...

    ++

  16. #16
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par magicwill
    Curieusement, j'ai pas envoyé la date dans location.href (les secondes)...et pourtant ça recharge bien la page à chaque fois...Visiblement, je n'ai pas la nécéssité d'envoyer les secondes...?
    Avec une url "fixe" : risque de recours au cache, avec l'heure dans l'url (précision à la seconde, et non pas uniquement les secondes), l'url devient variable et supprime le pb ...

    si tu as un bout de code dans la main pour savoir comment recup un tableau qui a été "join"...? J'utilise split, mais ca recup que la premiere valeur...
    Pb de séparateur sûrement : il faut utiliser le même pour le split() que pour le join() ...

    A+

  17. #17
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Par défaut
    Salut à nouveau...

    Pour mon problème d'envoi du tableau, il ne s'agissait pas du séparateur qui était différent dans join et dans split... visiblement, le "#" pose des probleme... j'ai donc choisi ":"...et tout va bien, j'arrive à récupérer les bonnes valeurs...
    Merci encore pour ton aide.

    En ce qui concerne l'envoie de la date dans l'URL... je pense ne pas saisir quand tu dis "l'heure dans l'URL (précision à la seconde, et non pas uniquement les secondes)"...
    Pourrais-tu me dire ce que je dois récupéré dans l'objet Date de javascript?

    Merci par avance.

  18. #18
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Par défaut
    Salut...

    Merci pour tout...tout fonctionne...j'ai finalement mis ça pour l'heure dans l'URL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var time = new Date();
    var envoiDate = "val" + time.getHours() + time.getMinutes() + time.getSeconds();
    Merci pour la résolution de mon problème.

    Magicwill.

  19. #19
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par magicwill
    Pourrais-tu me dire ce que je dois récupéré dans l'objet Date de javascript?
    a priori JJ/MM/AAAA HH:MI:SS

    Si tu te limites au secondes, potentiellement toutes les 60 secondes l'url sera la même

    A+

  20. #20
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par magicwill
    Merci pour tout...tout fonctionne...j'ai finalement mis ça pour l'heure dans l'URL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var time = new Date();
    var envoiDate = "val" + time.getHours() + time.getMinutes() + time.getSeconds();
    Cf post ci-dessus.
    (ici le pb ne se pose plus que toutes les 24h)

    A+

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

Discussions similaires

  1. Rafraichir page et garder variable
    Par magicwill dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 24/07/2007, 15h32
  2. page.request récupérer une variable
    Par dahu17 dans le forum ASP.NET
    Réponses: 11
    Dernier message: 25/06/2007, 15h53
  3. rafraichir page parent depuis une pop up
    Par yanchasp dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/08/2006, 09h09
  4. Garder une variable tout en revenant en arrière
    Par oceane751 dans le forum Langage
    Réponses: 12
    Dernier message: 21/05/2006, 00h46
  5. Comment garder une variable en mémoire...
    Par sam01 dans le forum Langage
    Réponses: 17
    Dernier message: 24/04/2006, 13h02

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