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

ASP.NET Discussion :

[ASP.Net]gérer la notion de "page périmée" ?


Sujet :

ASP.NET

  1. #1
    VVE
    VVE est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 72
    Points : 47
    Points
    47
    Par défaut [ASP.Net]gérer la notion de "page périmée" ?
    Hugh à toutes et à tous,

    petit pb de fond en architecture web :

    comment gérer une "date de péremption" d'une page côté client ?

    je m'explique :

    a. une page est générée dynamiquement avec une datagrid remplie à partir d'une table de ma bdd
    b. des fonctions d'ajout / suppression permettent à l'utilisateur de modifier les données.
    c. si l'utilisateur utilise le bouton précédent de son navigateur (le vicieux !), il pourra afficher des pages avec des données périmées...

    Comment, côté client, savoir si la page affichée vient du serveur (données fraîches) ou si elle vient de l'historique côté client (données périmées) ?

  2. #2
    VVE
    VVE est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 72
    Points : 47
    Points
    47
    Par défaut
    Bon, je n'ai pas bcp de succès avec mon post...

    Peut-être quelqu'un a déjà réaliser un truc comme "comment afficher une page une seule fois"

    L'idée que je cherche à suivre :

    a. au chargement (à l'ouverture ?) de la page, un javascript (donc, côté client) teste la valeur d'un champ caché,
    b. si FALSE, alors, c'est la 1ère fois qu'on ouvre => OK et on change la valeur du champ caché en mettant TRUE
    c. si TRUE, alors, la page a déjà été chargée => les données sont "périmées" => on redirige vers une page de message d'erreur

    Je début en programmation web, mais cet algo me paraît faisable. Qu'en pensez-vous ?

    Sur quel évènement de la page dois-je appeler ce javascript côté client (est-ce que onLoad() existe ?) ?...

    Est-ce que les champs cachés (hidden) conservent leurs valeurs lorsqu'ils sont stockés dans l'historique des pages côté client ?


    merci de vos tuyaux...

    Vincent

  3. #3
    VVE
    VVE est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 72
    Points : 47
    Points
    47
    Par défaut
    Bon mon idée semblait bonne.

    Voilà ce que j'ai fait :

    un JavaScript (inclus dans le module MenuBouton.js) avec le code suivant

    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
    21
     
    function CheckPagePerimee()
    {
    	var PageDejaVueCoteClient = document.getElementById("flagDejaVue");
     
    	if (PageDejaVueCoteClient != null)
    	{
    		if (PageDejaVueCoteClient.value != "")
    		{
    			{
    				/* redirige vers page msg "données périmées" */
    				document.location.href = "../PagePerimee.aspx";
    			}
    		}
    		else
    		{
    			/* change la valeur du flag */
    			PageDejaVueCoteClient.value = "KillRoyWasHere";
    		}
    	}
    }
    Dans la page ASPX qui contient les données dynamiques, j'ai ajouté le code suivant :


    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
    21
     
    	<HEAD>
    		<script src="../scripts/menuBoutons.js" language="javascript"></script>
    		<script language="JavaScript">
    		function page_load()
    		{
    			CheckPagePerimee();
     
    			(... suite du code...)
     
    		}
    		</script>
    	</HEAD>
    	<body leftMargin="0" topMargin="0" onload="page_load();">
    		<form id="Form1" method="post" runat="server">
    			<input type="hidden" name="flagDejaVue" id="flagDejaVue">
     
    			(... suite du code...)
     
    		</form>
    	</body>

    ma page "PagePerimee.aspx" contient un texte du genre "Page Périmée, impossible d'afficher cette page avec le bouton PRECEDENT de votre navigateur car elle contient des données générées dynamiquement depuis le serveur. Pour afficher cette page correctement, utilisez un lien ou un bouton du site."


    Woila, ça marche, mais y'a quand même un temps de latence (1/2 à 1 sec) la première fois que j'utilise le bouton PRECEDENT. Comme si la page s'affiche dpuis un "cache" côté client, puis le script se déclenche sur le "onLoad"...

    Est-ce que qelqu'un a mieux ?

    Vincent

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 11/03/2008, 19h38
  2. Réponses: 4
    Dernier message: 27/06/2007, 13h38
  3. Réponses: 4
    Dernier message: 17/03/2007, 21h31
  4. Réponses: 1
    Dernier message: 28/02/2007, 19h09

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