DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Concepts WEBDEV / Partie 4 - Concepts avancés
  • Présentation
  • Deux méthodes de gestion du bouton "Précédent" du navigateur
  • Exemple de désynchronisation
  • Empêcher l'utilisation du bouton "Précédent"
  • Fonctionnement
  • Mise en place
  • Gestion de la synchronisation
  • Présentation
  • Synchronisation par défaut
  • Synchronisation par programmation
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
14. Gérer le bouton précédent en pratique
Page précédenteSommairePage suivante
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.

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.
    Pour plus de détails, consultez : Empêcher l'utilisation du bouton précédent du navigateur.
  • Solution 2 : Gestion de la synchronisation (solution 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 automatiquement 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.
Pour plus de détails, consultez : Gestion de la synchronisation.

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'). Voici 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 enregistrements 'G' à 'L'.
  3. Clic sur le lien "Suivant"
    Résultat : le serveur se positionne sur les 6 enregistrements 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'enregistrement 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 navigateur indépendante de votre site WEBDEV, la deuxième condition peut ne pas être réalisée.
Empêcher l'utilisation du bouton "Précédent"
Si le bouton "Précédent" du navigateur est utilisé pour afficher la page, cette action n'aura aucun effet.

Fonctionnement

La désactivation de la fonction "Page précédente" du navigateur entraîne l'insertion du code Javascript suivant dans la page HTML générée :
<SCRIPT LANGUAGE="JavaScript">
history.forward()
</SCRIPT>
Lors de l'exécution de la page sous un navigateur, il sera impossible de revenir sur cette page par le bouton "Précédent" du navigateur.
Remarques :
  • L'utilisation du bouton "Précédent" du navigateur peut entraîner un clignotement de la page.
  • Ce mécanisme peut être mis en échec si un clic sur le bouton "STOP" du navigateur intervient avant l'exécution de l'instruction forward() par le navigateur.

Mise en place

Pour désactiver le bouton "Précédent" du navigateur pour une page précise :
  1. Affichez la fenêtre de description de la page : sous le volet "Page", dans le groupe "Description", cliquez sur "Description".
  2. Dans l'onglet "UI", pour l'option "Utilisation du bouton "Précédent" du navigateur", sélectionnez "Interdit".
  3. Validez.
Pour désactiver le bouton "Précédent" du navigateur pour toutes les pages du projet :
  1. Affichez la description du projet : sous le volet "Projet", dans le groupe "Projet", cliquez sur "Description".
  2. Cliquez sur l'onglet "Avancé".
  3. Pour l'option "Option par défaut pour l'utilisation du bouton "Précédent" du navigateur", cochez "Interdit".
  4. Validez. Cette option sera automatiquement prise en compte pour toutes les nouvelles pages du site.
Gestion de la synchronisation

Présentation

Grâce au mécanisme de synchronisation des pages, lors de chaque action effectuée dans une page une vérification de synchronisation est automatiquement réalisée. Cette vérification consiste à vérifier si la page affichée sur le navigateur correspond bien au contexte de page présent sur le serveur.
Deux modes de gestion de la synchronisation sont disponibles :
  1. Gestion de la synchronisation par défaut.
  2. Gestion de la synchronisation par programmation, dans le code de synchronisation de la page.

Synchronisation par défaut

Le mécanisme de synchronisation par défaut est déclenché uniquement si l'option "Utiliser le mécanisme de synchronisation des pages" est sélectionnée pour la page.
En cas de désynchronisation, un message d'avertissement informe l'internaute que l'action demandée n'a pu être effectuée. La page correspondant au contexte présent sur le serveur est ré-affichée. Le site peut continuer à fonctionner.
Pour mettre en place la gestion de la synchronisation dans une page :
  1. Affichez la fenêtre de description de la page : sous le volet "Page", dans le groupe "Description", cliquez sur "Description".
  2. Dans l'onglet "UI", pour l'option "Utilisation du bouton "Précédent" du navigateur", sélectionnez "Autorisé (exécute le code de synchronisation)".
  3. Validez. Cette page sera automatiquement incluse dans l'historique des pages du navigateur : il sera possible de revenir sur cette page par le bouton "Précédent" du navigateur.
Pour mettre en place la gestion de la synchronisation dans toutes les pages du projet :
  1. Affichez la description du projet : sous le volet "Projet", dans le groupe "Projet", cliquez sur "Description".
  2. Dans l'onglet "Avancé", pour l'option "Option par défaut pour l'utilisation du bouton "Précédent" du navigateur", cochez "Autorisé (exécute le code de synchronisation)".
  3. Validez. Les pages du projet seront automatiquement incluses dans l'historique des pages du navigateur : il sera possible de revenir sur ces pages par le bouton "Précédent" du navigateur.
Remarques :
  • Ce mode de gestion ne nécessite aucun code WLangage particulier.
  • Pour les champs de la page ne nécessitant pas une gestion de la synchronisation (bouton "Fermer" par exemple), il est possible de débrancher le mécanisme de synchronisation : il suffit de décocher l'option "Appeler le traitement de synchronisation de la page si l'internaute a utilisé le bouton précédent du navigateur" dans l'onglet "Avancé" de la description du champ.
  • Le message d'avertissement peut être personnalisé (voir le paragraphe suivant).
Synchronisation par programmation
Pour gérer la synchronisation par programmation :
  1. Affichez la fenêtre de description de la page : sous le volet "Page", dans le groupe "Description", cliquez sur "Description".
  2. Dans l'onglet "UI", pour l'option "Utilisation du bouton "Précédent" du navigateur", sélectionnez "Autorisé".
  3. Configurez si nécessaire les champs de la page pour lesquels la synchronisation ne doit pas être gérée.
    Pour chaque champ déclenchant une action sur le serveur, il est possible de paramétrer si la gestion de la synchronisation de la page doit être effectuée (option par défaut) ou ignorée lors de cette action. Pour ignorer la gestion de la synchronisation, il suffit de décocher l'option "Appeler le traitement de synchronisation de la page si l'internaute a utilisé le bouton précédent du navigateur" dans l'onglet "Avancé" de la description du champ.
  4. Saisissez le code nécessaire à la gestion personnalisée de la synchronisation dans le code de synchronisation de la page. Utilisez la fonction ChangeAction dans le code de synchronisation de la page. Cette fonction permet de déterminer l'action qui sera faite en cas de désynchronisation de la page.
Remarques :
  • La fonction ChangeAction est initialisée avec l'action "Ne rien faire" si une fonction du WLangage permettant d'afficher ou de ré-afficher une page est utilisée dans le code de synchronisation de la page.
  • Pour personnaliser le message de désynchronisation, il suffit de saisir dans le code de synchronisation de la page :
    1. le message personnalisé.
    2. le ré-affichage de la page en cours sur le serveur (avec la fonction PageActualise par exemple).
  • Pour réaliser une synchronisation à partir des informations présentes sur le poste de l'internaute, il est conseillé de :
    1. Utiliser un champ caché contenant l'identifiant de l'enregistrement affiché et sélectionné.
    2. Rechercher dans le code de synchronisation l'enregistrement en cours sur le navigateur. Cette recherche est réalisée à partir de son identifiant contenu dans le champ caché.
    3. Réactualiser la page.
Page précédenteSommairePage suivante
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale