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

JSF Java Discussion :

Bouton précédent du navigateur


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Par défaut Bouton précédent du navigateur
    Bonjour tout le monde

    mon probléme est avec le bouton précédent du navigateur,
    quand je clique sur mon lien log out de ma page "bienvenue.xhtml" je me retrouve sur la page "login.xhtml" jusqu'ici c'est bon mais quand je clique sur le bouton précédent du navigateur il me réaffiche la page "bienvenue.xhtml" et je vois que ma session reste valide
    et si je clique une 2ème fois sur le lien log out j'ai un message d'erreur.

    merci pour votre réponses

  2. #2
    Membre confirmé Avatar de Lordsephiroth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 199
    Par défaut
    Salutations,

    Le bouton "back" peut en effet poser passablement de problèmes. Si je comprends bien ce qui se passe dans ton cas, je dirais que tu lorsque tu cliques sur le bouton "back", tu vois une page qui a été mise en cache par ton browser. Ta session (et donc ton login) est, du point de vue du serveur, entièrement détruite. Par contre, ton browser a gardé en cache ta page bienvenue.xhtml et la ré-affiche sans faire la moindre requête au serveur.

    Il y a plusieurs façons de détourner le problème :
    1) tu peux désactiver le cache de la page à l'aide de l'en-tête HTTP ou HTML le permettant (je n'ai pas le code sous la main, mais recherche sur le web avec les mots clés "pragma" et "no-cache", tu devrais arriver à trouver facilement). La contenu HTML ne devrait donc plus être mise en cache par le navigateur, ce qui aurait pour effet de recharger la page lors d'un "back". Attention toutefois à l'interprétation différente des directives de cache par les différents navigateurs.
    2) ces quelques lignes de javascript te permettent de magouiller et de "désactiver" le bouton back (à mettre entre la balise <head></head>), il effectue simplement un "forward" dès qu'un "back" est réalisé. L'utilisateur sera donc redirigé directement sur index.xhtml dès qu'il fera back, car bienvenue.xhtml le renverra immédiatement dessus par un "forward" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        <script>
        function noback(){
    		try{
    			history.forward();
    		}
    		catch(e){
    			// just ignore errors;
    		}
        }
        </script>
    Si tu as de l'AJAX par dessus ta couche JSF (par exemple RichFaces, IceFaces ou tout framework similaire), c'est encore nettement plus casse-pieds.

Discussions similaires

  1. [HTML] affichage d'une page après clic sur le bouton 'précédent' du navigateur
    Par val_lala dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 06/04/2008, 23h21
  2. Bloquer le bouton précédent du navigateur
    Par seb591 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/08/2007, 08h58
  3. Réponses: 2
    Dernier message: 09/08/2007, 16h42
  4. Désactiver un bouton précédent du navigateur
    Par medmans dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 25/07/2007, 18h08
  5. Réponses: 3
    Dernier message: 23/07/2006, 17h15

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