2009-10-08 8 views
1

Je dois détecter la fermeture du navigateur/onglet à partir d'une application flexible afin de supprimer les informations de session dans le serveur.Détection de la fermeture du navigateur à partir de l'application flexible

Je suis familier avec les événements JavaScript mais j'errait s'il y a un événement flex pour décharger l'application ou quelque chose de ce genre ...

+0

question similaire: http://stackoverflow.com/questions/180107/detecting-when-a-user-leaves-a-page- browser-in-flex – Herms

+0

Merci à tous, Je suppose que je vais aller avec la solution proposée par TheBrain. Avec le manque de support pour cette fonctionnalité en flex, c'est la solution la plus propre que j'ai vu. – Ofir

+0

il ya une autre question comme la vôtre ici qui a une réponse. http://stackoverflow.com/questions/1119554/flash-player-notified-on-browser-close-or-change-page-as3 – TheBrain

Répondre

0

Malheureusement Flex/Flash n'a pas un événement comme celui-ci. Probablement le mieux que vous pouvez faire est de garder votre application flexible envoie au serveur, et une fois que le serveur ne reçoit pas ce keepalive pendant un certain temps, il suppose que le SWF a été fermé et supprime les informations de session.

0

Comme l'indique la réponse 1, le flash n'a aucun moyen de détecter si l'utilisateur ferme le navigateur/l'onglet. Toutefois, vous pourriez être en mesure d'utiliser JavaScript pour vous inscrire à l'événement, puis signaler Flex/Flash. À ce stade cependant, vous pouvez simplement envoyer une requête JavaScript Async au serveur pour supprimer la session des utilisateurs. La requête n'est pas garantie de terminer, mais elle le sera généralement si le serveur est rapide!

+0

Vous n'aurez probablement pas le temps d'envoyer le message javascript au fichier SWF traité avant la fermeture de la fenêtre, il serait donc peu fiable. Donc, même si vous implémentez cela, il serait toujours utile d'avoir le serveur capable de détecter les choses par lui-même avec un certain délai. – Herms

1

Dans le cas où cela n'a pas déjà répondu, il est la propriété « fermée » de l'objet fenêtre DOM HTML:

« La propriété retourne fermé une valeur booléenne qui spécifie si la fenêtre a été fermée. »

http://www.w3schools.com/htmldom/prop_win_closed.asp

Vous pouvez utiliser ExternalInterface appeler Javascript de Flex

Questions connexes