À l'époque de CGI, nous avions de nombreuses formes qui déclenchaient diverses actions backend. Tels que les notifications de texte aux groupes, les travaux d'impression, l'agriculture de données, etc.
Si l'utilisateur était sur une page qui disait "Veuillez patienter ... Exécution d'un travail ÉNORME qui pourrait prendre un certain temps.". Ils étaient plus susceptibles de frapper REFRESH et ce serait MAUVAIS!
POURQUOI? Parce que cela déclencherait des travaux plus lents et finirait par enliser le tout.
La solution? Permettez-leur de faire leur forme. Lorsqu'ils soumettent leur formulaire ... Commencez votre travail et dirigez-les vers une autre page qui leur dit d'attendre.
Où la page au milieu contenait en fait les données de formulaire nécessaires pour démarrer le travail. La page WAIT contient cependant une destruction de l'historique javascript. Ainsi, ils peuvent RELOAD cette page d'attente tout ce qu'ils veulent et cela ne déclenchera jamais le démarrage du travail d'origine en arrière-plan car cette page WAIT ne contient que les données de formulaire nécessaires pour WAIT lui-même.
J'espère que cela a du sens.
La fonction de destruction de l'historique les a également empêchés de cliquer sur RETOUR, puis de se rafraîchir.
Il était très transparent et fonctionnait très bien pendant BEAUCOUP D'ANNÉES jusqu'à ce que l'organisation à but non lucratif soit dissoute.
Exemple: ENTRÉE DE FORMULAIRE - Collectez toutes leurs informations et une fois soumises, cela déclenche votre travail de backend.
RÉPONSE à partir de l'entrée de formulaire - Renvoie du code HTML qui effectue une redirection vers votre page d'attente statique et / ou POST / GET vers un autre formulaire (la page WAIT).
WAIT PAGE - Ne contient que les données FORM liées à la page d'attente ainsi que du javascript pour détruire l'historique le plus récent. Comme (-1 OU -2) pour détruire uniquement les pages les plus récentes, mais leur permet toujours de revenir à leur page d'entrée FORM originale.
Une fois qu'ils sont sur votre page WAIT, ils peuvent cliquer sur REFRESH autant qu'ils le souhaitent et cela ne créera jamais le travail FORM d'origine sur le backend. Au lieu de cela, votre page WAIT devrait inclure une actualisation chronométrée META elle-même afin qu'elle puisse toujours vérifier l'état de leur travail. Lorsque leur travail est terminé, ils sont redirigés de la page d'attente vers l'endroit où vous le souhaitez.
S'ils le font manuellement REFRESH ... Ils ajoutent simplement une vérification supplémentaire de leur statut de travail là-dedans.
J'espère que cela pourra aider. Bonne chance.