WEBDEV 2024 : Les concepts

154 Partie 4 : Concepts avancés Gérer le bouton précédent en pratique 1 Présentation Le bouton "Précédent" du navigateur permet à l’internaute d’afficher les pages précédentes déjà consultées. Dans un site WEBDEV en mode Session, chaque page HTML affichée sur le navigateur est associée à un contexte de page, présent sur le serveur. Chaque action effectuée dans une page affichée par le navigateur doit entraîner une action identique sur le contexte de page correspondant présent sur le serveur. Or l’utilisation du bouton "Précédent" du navigateur permet de réaliser une action uniquement sur le navigateur : la page affichée sur le navigateur et son contexte présent sur le serveur peuvent donc être désynchronisés en cas d’utilisation du bouton "Pré- cédent" du navigateur. 1.1 Deux méthodes de gestion du bouton "Précédent" du navigateur Pour éviter tout problème lié à la désynchronisation entre les pages affichées sur le navigateur et les contextes correspondants présents sur le serveur, WEBDEV met à votre disposition deux modes de gestion du bouton "Précédent" du navigateur : • Solution 1  : Empêcher le retour sur cette page depuis le bouton "Précédent" du navigateur. Si le bouton "Précédent" du navigateur est utilisé pour afficher la page, cette action n’aura aucun effet. • Solution 2  : Gestion de la synchronisation (solu- tion par défaut) Pour chaque action effectuée dans une page depuis le navigateur, un test de synchronisation entre la page HTML et son contexte est automa- tiquement réalisé. Deux modes de gestion de la synchronisation sont possibles : • synchronisation par défaut (mode utilisé par défaut lors de la création d’une nouvelle page). • synchronisation programmée. 1.2 Exemple de désynchronisation Voici un exemple de site : • Une page du navigateur contient un champ Table fichier relié au fichier ITEM et un lien "Suivant". • Le fichier ITEM ne contient qu’une rubrique, chaque enregistrement est constitué d’une lettre de l’alphabet. • La page permet d’afficher 6 lignes du champ Table, le lien "Suivant" permet d’afficher les 6 suivantes. A l’ouverture de la page, le champ Table affiche les 6 premiers enregistrements du fichier (de ’A’ à ’F’). Voi- ci un enchaînement d’actions faites par l’utilisateur : 1. Clic sur le lien "Suivant" Résultat  : le serveur se positionne sur les 6 enregistrements suivants de ITEM et renvoie au navigateur leurs contenus. Le navigateur affiche la page suivante du champ Table avec les 6 nouveaux contenus (’G’ à ’L’). 2. Clic sur le bouton "Précédent" du navigateur Résultat  : le navigateur affiche la page précédant la première action. Le champ Table affiché contient les lettres ’A’ à ’F’. Le serveur n’a pas été sollicité, il est donc toujours positionné sur les enregistre- ments ’G’ à ’L’. 3. Clic sur le lien "Suivant" Résultat  : le serveur se positionne sur les 6 enre- gistrements suivants de ITEM (donc de ’M’ à ’R’). Le navigateur se synchronise avec le serveur et affiche les mêmes éléments : l’internaute a l’impression que certaines informations ne sont pas affichées. Ce dysfonctionnement peut avoir des consé- quences inattendues lors d’une modification d’un enregistrement de fichier (modification de l’enregis- trement qui n’est pas celui visualisé par l’internaute par exemple). Rappel  : chaque action sur le navigateur doit entraî- ner une action du serveur : le serveur envoie alors une réponse au navigateur. Or le clic sur le bouton "Précédent" du navigateur étant une action naviga- teur indépendante de votre site WEBDEV, la deu- xième condition peut ne pas être réalisée.

RkJQdWJsaXNoZXIy NDQ0OA==