Question

Supposons qu'un applet s'exécute dans une page d'un navigateur. Que se passe-t-il lorsque le navigateur est fermé par l'utilisateur?

L'applet est-il averti afin qu'il puisse effectuer une sorte d'action de fermeture de son côté (fermeture des connexions ouvertes sur un serveur, nettoyage des variables statiques, ...)?

De plus, je suppose que le même comportement s’appliquerait pour un rafraîchissement de page ou une navigation de page (au lieu de fermer le navigateur). Le navigateur reste ouvert mais l'applet est parti. Bien que, lorsque vous fermez le navigateur, vous fermez également la machine virtuelle Java. Je ne suis donc pas sûr à ce stade.

Merci, JB

Était-ce utile?

La solution

Oui, la méthode destroy () doit être appelée avant que le navigateur ne décharge l'objet .

destroy () est le dernier des quatre & "; méthodes du cycle de vie &"; de l'applet Java (les autres sont init () , start () et stop () ). Ils sont en fait appelés à différents moments en fonction de votre navigateur et de votre machine virtuelle . Si vous souhaitez savoir exactement quand chaque appel est appelé, implémentez chaque méthode dans votre applet et System.out des commentaires.

Idéalement, destroy () doit être appelé par l'environnement et ne doit être appelé qu'une seule fois. S'il semble que destroy () ne soit pas appelé, vous pouvez déclarer une méthode publique finalize (), qui appelle destroy. Vous pouvez également essayer d'appeler destroy () à partir de javascript lors du déchargement de l'objet window, mais encore une fois, assurez-vous de ne pas appeler destroy () inutilement.

public void finalize () {
    destroy();
}

Autres conseils

La plupart du temps, destroy sera appelé, mais ne disposera pas de suffisamment de temps pour effectuer les tâches requises en cas de fermeture de la fenêtre.

Il faut suffisamment de temps pour actualiser et naviguer avec les mots de fond < - et Forward - >

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