16 octobre 2013
publié par 
La navigation dans un site web généré par WEBDEV peut être interrompue pour diverses raisons en fonction des actions de l'utilisateur. Un des cas le plus courant, l'utilisateur abandonne son poste en pleine saisie dans une partie dynamique du site, avec contexte, à son retour il sera notifié d'un dépassement de délai : ERR_DISCONNECTED_TIMEOUT
Une page standard du serveur d'application de WEBDEV se charge de remonter à l'internaute tous les cas d'erreur qui peuvent survenir. Cette page par défaut relance le site à partir de sa première page dynamique. Cependant, dans le cas courant d'un site ayant :
  • une première partie avec des pages en mode awp sans contexte (navigation dans un catalogue de produits avec référencement),
  • puis d'autres parties en dynamique avec contexte (validation d'un panier avec paiement) ...
"l'expérience utilisateur" ne sera pas des plus agréables pour l'internaute si après un timeout ou une autre erreur il se retrouve à un point du site (première page dynamique) qui ne lui donne aucune explication.

De façon moins littéraire, le cheminement de l'utilisateur serait :
  • accès au site via son domaine www.mon
  • arrivée sur une page ./page_index.awp
  • navigation dans des pages ./page_produit ???.awp
  • passage en validation d'une commande : une page awp fait un appel de la fonction SiteDynamiqueAffiche afin de passer dans la partie dynamique avec contexte du site (ou même d'un autre site pourquoi pas),
  • une erreur survient durant la validation (timeout...)

Lorsque cet enchaînement se produit, l'internaute est renvoyé par défaut sur la première page dynamique obtenue précédemment avec SiteDynamiqueAffiche, et non pas sur les pages en mode awp qui précédaient. Pourtant dans ce cas c'est généralement dans ces pages que l'utilisateur devra repasser pour vérifier ses choix, et relancer si besoin la partie dynamique en connaissance de cause.

Voici la marche à suivre pour modifier ce comportement par défaut, afin de rediriger la navigation après une erreur dans la partie dynamique :
  • créer une nouvelle page dans le site,
  • ouvrir la nouvelle page
  • dans l'assistant sélectionner une "Page d'erreur",
  • enregistrer la nouvelle page (elle sera automatiquement référencée comme page d'erreur dans la description du projet)
  • ces étapes sont illustrées dans la page d'aide "Page spécifique pour afficher les erreurs du site"
  • appliquer le gabarit du site à la page (c'est un autre avantage de cette solution, les cas d'erreurs s'intègrent pour éviter de dérouter l'utilisateur)
  • ajouter dans le code navigateur onload de la page le code suivant :

    gnTimer est un entier
    gnTimer = Timer("Redirection",300)

  • créer une procédure locale navigateur nommée "Redirection" avec le code :

    Procedure Redirection()

    FinTimer(gnTimer)
    PageAffiche("FR/page_index.awp")


Dans cet exemple un timer permet de laisser apparaître la page d'erreur chargée de la redirection, il est cependant possible de la masquer en totalité en effectuant la redirection (PageAffiche) directement dans le code navigateur onload de la page.

D'autre part l'exemple propose de renvoyer l'utilisateur sur la page d'index du départ, il est tout à fait envisageable de rediriger sur une autre page spécifique, un autre site, il n'y a pas de contrainte.

< Retour

Publier un commentaire : 
Votre adresse email ne sera pas publiée