Ver Mensaje Individual
  #6 (permalink)  
Antiguo 15/11/2010, 16:56
Avatar de ElJavista
ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 2 meses
Puntos: 67
Respuesta: usuarios online en sistema de registros

No sé si existirá otra solución, pero ponte a pensar. La idea es ejecutar un script ya sea PHP o ajax al salir de la página. El problema está en que cómo reconoce que estás navegando dentro de la misma página o si se cierra la ventana? Cuando se navega de página en página en el mismo sitio se ejecuta el evento onunload en cada página de la que se sale. OK, pero en ese caso no debe detectarse ningún cierre de sesión. Si se cierra la ventana sin más ni más entonces igual se ejecuta en esa página el evento onunload, no hay diferencia, pero en ese caso si se debe registrar el cierre de una sesión. La pregunta es, cómo detectar la diferencia? Si alguien lo sabe, me avisa, yo no puedo.

De poderse detectar esa diferencia se podría programar una función ajax con el evento onunload, el único problema es que como se cierra la página no se terminará de ejecutar la función que registre el cambio de sesión en la base de datos, o sea de nada sirve. No obstante, si se ejecuta un alert en el final de la función ajax pues si funcionaría, pero mostraría un odioso alert diciendo "Esto cerrará la sesión" o cualquier otro mensaje que quieras. También podría aparecer mostrarse un confirm preguntando si se desea cerrar la sesión, pero como antes se ha cerrado se debería ejecutar otra función ajax que renueve la sesión.

OK, estas dos cosas se podrían implementar, pero el problema sigue siendo el mismo, cómo detecto que alguien simplemente está navegando sobre el mismo sitio o si alguien cerró la ventana. O peor aún, cómo detecto si alguien ha salido del sitio para entrar a otro sin cerrar la ventana, o sea, en la misma pestaña? No creo que haya solución a eso, pero si la hay, me avisan por favor.

Última edición por ElJavista; 17/11/2010 a las 07:39