2010-08-20 42 views
6

Según entiendo, la variable de sesión se borra cuando un usuario cierra su navegador. ¿Hay alguna forma de borrar la variable de sesión cuando un usuario cierra una pestaña en un navegador?Borrando valores de sesión en la pestaña cerrar

La razón por la que pregunto es que necesito diferenciar dos visitas si un usuario está en el sitio y cierra la pestaña pero no el navegador, y el usuario vuelve al sitio en una pestaña separada en la misma sesión del navegador.

Respuesta

2

Las variables de sesión son del lado del servidor, y el cierre de pestañas es una acción del lado del cliente, por lo que tendría que enviar de alguna manera una señal al servidor para borrar esas variables de sesión.

El método más obvio para mí sería usar el método de antes de descargar del navegador y enviar algo ajaxically al servidor para borrar la sesión.

Sin embargo, este es un territorio peligroso. ¿Está seguro de que no desea permitir que el usuario abra y use más de una pestaña de su sitio al mismo tiempo? Porque, si tengo su sitio abierto en dos pestañas, esta técnica borrará la sesión al cerrar una pestaña, haciendo que la otra pestaña sea inútil (no inútil, simplemente la alfombra podría haber sido extraída de debajo de esta página, ahora esa sesión se ha ido).

0

Revise el siguiente enlace para obtener la mejor respuesta: Why Doesn't Closing A Tab Delete A Session Cookie?.

Lo que puede hacer es agregar texto aleatorio al final de la URL y almacenarlo como referencia y si los usuarios provienen de una nueva pestaña y no tienen el texto al azar adjunto, puede determinar el usuario que proviene de una pestaña diferente.

Cuestiones relacionadas