Foros del Web » Programando para Internet » Javascript »

cierre de session por browser!!

Estas en el tema de cierre de session por browser!! en el foro de Javascript en Foros del Web. Hola muchachos. Yo realizé un codigo que me detecta si el usuario esta o no navegando por el site y este me registra la hora ...
  #1 (permalink)  
Antiguo 30/03/2006, 13:49
 
Fecha de Ingreso: febrero-2002
Mensajes: 100
Antigüedad: 22 años, 2 meses
Puntos: 0
cierre de session por browser!!

Hola muchachos.

Yo realizé un codigo que me detecta si el usuario esta o no navegando por el site y este me registra la hora de salida cuando le da a "salir" o "logout" al site.

Pero cuando el usuario se le ocurre darle a la "X" del browser me queda mi codigo sin registrar la salida y por supuesto que cuando quiere entrar nuevamente no lo dejo porque para mi está navegando todavia.

Cómo hago para detectar que el usuario le dio a la X y pueda ejecutar mi codigo que registra la salida?

Esa es la pregunta 1.


La pregunta 2 es, que he visto sites bancarios que si el usuario tiene cierto tiempo sin actividad en el site se le dispara una pantalla tipo pop up, que le indica que si sigue asi lo desconectaran del site.

Y efectivamente le cierran la session.

Cómo hago eso.

Muchas gracias
__________________
Reyj

Vida es una, disfrutala todos los días!
  #2 (permalink)  
Antiguo 30/03/2006, 15:05
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Resp 1:

Cuando le dan click al browser en cerrar, no es posible que puedas registrar la hora de salida, pero bien puedes valerte de alguno de los siguientes trucos para registrar su salida:

1. Mediante Javascript mandar llamar al evento que se declara en la etiqueta BODY y me parece que se llama onUnLoad() (no sé si esté bien escrito) para que se dispare cuando el navegador cierre. Dentro de ese evento, puedes indicar que se abra un PopUp cuyo contenido sea un script que se conecte con la DB para registrar la hora de salida.

No lo recomiendo mucho, porque debido a que ese método tuvo un abuso considerable en el pasado, muchos navegadores ahorita tienen opciones por default de no permitir esta práctica.

2. Puedes hacer, igual mediante Javascript, que ese evento llame al servidor mediante AJAX (algo complicado si no lo has usado antes).

3. (recomendada) Cada que se el usuario cargue una nueva página dentro de la sesión, anota la hora actual en la hora de salida. Así, mientras el usuario esté navegando, la hora de salida se va actualizando, ¿me explico? Llegará un momento en el que el usuario abandone la página, ya sea porque cerró su navegador o simplemente se fue a otra página y en ese caso, la hora de salida será la última que se anotó.


Resp. 2

Mediante Javacript y usando el evento setTimeout("unEvento()",milisegundos) tú puedes mandar llamar a ese PopUp que avisa al usuario, digamos en 300,000 milisegundos (5 minutos).

¿Pero cómo saber que efectivamente el usuario no ha estado navegando? Bueno, pues llamando a eventos como onMouseMove() que se disparan cada que el usuario mueve el mouse y cada que se dispare, reinicias el conteo.

¿Qué pasará cuando la cuenta llegue a cero? Igual, con Javscript y sando la propiedad del documento "location.href" tú indicas una URL en donde el usuario al visitarla, se 'desloguee', que sería el equivalente a que el usuario diera click en salir.
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #3 (permalink)  
Antiguo 30/03/2006, 15:40
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Movemos al foro de JavaScript... todo eso es un comportamiento del lado del cliente.

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:30.