Question

J'espérais que quelqu'un pourrait répondre à une question fondamentale sur l'actualisation d'une page Web.

J'ai un formulaire Web Dotnet où un utilisateur renseigne certains détails et clique sur Soumettre. Le code derrière la page Web a environ 20 fonctions à exécuter.

Supposons maintenant que lorsque l'utilisateur clique sur le bouton d'envoi, la page Web exécute la cinquième fonction et, dans l'intervalle, il actualise son navigateur.

Qu'adviendra-t-il de la page en cours de traitement? La page sera-t-elle terminée immédiatement? ou sera-t-il autorisé à s'exécuter jusqu'à l'exécution de la 20ème fonction? ou la page en cours d’exécution sera-t-elle détruite et une nouvelle page créée et envoyée au client?

Merci pour vos réponses.

Était-ce utile?

La solution

Une fois qu'une demande est faite au serveur par le navigateur, la page est traitée. Même si l'utilisateur annule ou arrête la demande, le serveur continue à traiter la demande. Si l'utilisateur recharge / rafraîchit la page, il s'agit d'une autre requête qui sera exécutée en parallèle avec la première requête.

Même dans le cas de PHP, le serveur ne vérifie pas activement si le l'utilisateur a abandonné la connexion. Le serveur sait uniquement qu'il a été abandonné lorsqu'il tente de renvoyer les résultats de la demande.

Internet est un environnement déconnecté. Le serveur ne sait rien du navigateur. Le serveur sait seulement qu'une requête a été faite et qu'il doit la remplir.

Autres conseils

Lorsqu'une page est actualisée sur le navigateur, celui-ci appelle le serveur pour obtenir une nouvelle copie de la page et de ses composants (CSS, JS, etc.) s'ils ne sont pas mis en cache.

Si la page était un appel POST, le navigateur POST de nouveau les données.

La page est chargée:

Une fois chargé, l'exécution côté serveur doit être terminée (à moins d'exécuter des processus supplémentaires ou d'exécuter du code d'arrière-plan qui n'enverra plus de données au client).

La page se charge à mi-chemin:

La connexion de la page en cours sera immédiatement déconnectée - si la page se charge toujours . Cela dépend du serveur, que la page continue de s'exécuter ou se termine. Par exemple, en PHP, nous pouvons ignorer_user_abort () pour que le script continue à fonctionner même si la page a été fermée à mi-chemin du chargement.

Si votre serveur est ASP et que vous cliquez sur un bouton ASP, l'action (méthode) du bouton sera effectuée complètement côté serveur, même si l'utilisateur effectue une actualisation à mi-parcours. C’est ainsi que le framework ASP.NET est réalisé.

Simplement, la page que l'utilisateur voit est perdue sauf si, en session, ils ne peuvent plus la récupérer. Mais le serveur ne sait pas que l'utilisateur s'est déconnecté et l'application continuera donc à s'exécuter, à moins qu'il n'y ait une session / un délai d'attente sur l'application, même dans ce cas, il serait étrange que la session ne se termine pas.

J'espère que cela vous aidera.

RE

L'exécution du code se poursuivra jusqu'à la fin.

Je pense qu'une page Web (côté client bien sûr) est exécutée dans un thread unique . Si votre " onsubmit " appelle une traînée de fonctions, à vous de décider mais à un moment donné vous voudrez peut-être submit () , le formulaire.

En d'autres termes (dans votre cas particulier), toutes les traces de fonction continueront jusqu'à l'envoi du formulaire.

Par contre, si vous appuyez sur le bouton " reload " bouton, l'exécution est terminée .

tous les funcs seront exécutés, même si vous avez rafraîchi, vous pouvez faire un test. mais dans .net, il fournit une fonction permettant de vérifier si le client est toujours connecté au serveur (pour votre première soumission, le serveur peut vérifier si le client attend la réponse à tout moment après la soumission)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top