29 votes

jquery: décharger ou avant décharger?

Je veux poster un message au serveur lorsque l'utilisateur de naviguer hors de la page en cours, je suis en utilisant .décharger l'instant, mais le résultat n'est pas fiable, même dans son document dit vrai:

Le exacte de la manipulation de l'événement unload varie d'une version à l'autre de les navigateurs. Par exemple, certaines versions de Firefox déclencher l'événement lorsqu'un lien est suivi, mais pas quand la la fenêtre est fermée. Dans la pratique, l'utilisation, le comportement devrait être testé sur toutes les navigateurs pris en charge, et en contraste avec le propriétaire beforeunload de l'événement.

Dois-je utiliser beforeunload événement? Est-il fiable?

41voto

Nick Craver Points 313913

Oui, beforeunload est plus fiable, mais assurez-vous d'affecter directement (qui n'est pas lié par jQuery), comme ceci:

window.onbeforeunload = function() { /* do stuff */ };

L' unload événement en lui-même n'avait pas de travail à faire, seulement le nettoyage des objets...en tant que ramasseurs d'ordures aller de mieux en mieux, il y a moins de raison pour que le navigateur de feu même de l' unload événement.

Sachez également que dans votre cas, vous auriez à faire un synchrone demande au serveur...sinon, le navigateur ne parvenez toujours pas à attendre l'appel AJAX pour terminer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X