2008-09-16 5 views

Répondre

2

Vous pouvez utiliser une requête Ajax, mais veillez à en faire une requête synchrone plutôt qu'une requête asynchrone. Alternativement, il suffit d'enregistrer l'état chaque fois que l'utilisateur apporte une modification, cela protège également les données si le navigateur de l'utilisateur se bloque.

0

Vous pouvez également définir un cookie en utilisant javascript lors du déchargement. Je pense que l'avantage d'ajax par rapport aux cookies est que vous avez les données à votre disposition pour les rapports et que l'utilisateur (s'il est connecté) peut utiliser les données sur différentes machines.

L'inconvénient de l'utilisation d'ajax est qu'il peut ralentir la fermeture de la fenêtre du navigateur, ce qui peut être gênant si le serveur tarde à répondre.

0

Cela dépend de la façon dont l'utilisateur quitte la page. S'il y a un bouton 'se déconnecter' dans votre interface graphique, vous pouvez déclencher une requête ajax lorsque l'utilisateur clique sur ce bouton. Sinon, je ne pense pas que ce soit une bonne idée de faire une requête dans onUnload. Comme indiqué précédemment, vous devrez faire une demande synchrone ... Une alternative à la solution cookie serait un champ de texte caché. C'est une technique habituellement utilisée par des outils tels que RSH qui traitent des problèmes d'histoire qui viennent avec ajax.

1

Il ya une réponse ci-dessus qui dit d'utiliser un appel ajax synchrone, et c'est le meilleur des cas. Le problème est que le déchargement ne fonctionne pas partout. Si vous regardez here, vous trouverez quelques astuces pour vous aider à télécharger des événements en safari ... Vous pouvez également utiliser Google Gears pour enregistrer le contenu côté utilisateur pour les situations où l'utilisateur reviendra, mais la seule façon de garder en toute sécurité cette information est de l'envoyer en continu tant que l'utilisateur est sur la page ou apporter des modifications.

Questions connexes