Comment maintenir en vie la session d'un utilisateur pendant qu'il publie sur un forum?
J'ai un site avec un délai d'expiration de session de 15 minutes. Sur certaines pages, un utilisateur passe parfois plus de 15 minutes en remplissant une réponse. Quelle est la meilleure solution pour garder vivante la session dans ce cas?
J'utilise déjà JQuery
sur ces pages, peut-être que le ping d'un serveur, mais sur quels événements?
Le backend est un Struts
sur Tomcat
.
source d'informationauteur Nick
Vous devez vous connecter pour publier un commentaire.
Donné que vous ne voulez pas modifier le site du délai d'expiration de session..
Définir un délai d'attente/intervalle (< 15min) des événements en javascript et de décider quoi faire lorsque l'événement se déclenche. Si vous voulez que la session est active tant que la page est ouverte, alors tout va bien, garder une requête ping à chaque < 15 min. Mais ce n'est probablement pas ce que vous voulez comme un utilisateur de laisser un ordinateur public doit être connecté à un certain point.
Vous pourriez maintenir une variable
lastActivity
qui est mis à jour sur chaque document mousemove ou document keydown. Si il n'y a eu aucune activité depuis le dernier de ping, de ping de nouveau.Être plus sophistiqué, vous pouvez compter les événements et la commande ping sur le serveur uniquement si le nombre d'événements >, le seuil de dépassement de délai.
L'exemple de base:
Avec vérification de base pour la saisie de l'activité:
Je pense que vous ne voulez vraiment pas ce pour TOUTES les pages. Si vous deviez le faire sur chaque page, même ceux qui ne dépend pas des variables de session, vous seriez consommer beaucoup de mémoire.
Je vous suggère de jeter dans une condition de le faire que sur certaines pages où c'est nécessaire, c'est à dire
Vous pouvez définir un intervalle jamais 5 minutes:
Ou vérifier si il/elle est en train de taper quelque chose: