2009-11-12 34 views
5

estoy comprobando el estado del usuario, ya sea que esté activo o inactivo, en una página web (en una ventana emergente). en caso de que esté inactivo durante más de 30 minutos, la ventana se cerrará automáticamente y restablecerá algunos indicadores en la base de datos.comprobando el estado del usuario (activo, inactivo) en una página web

configuro las cookies que contienen el tiempo de entrada (el tiempo que abre la ventana emergente) y las comparo con la hora actual cada vez que la página se actualiza o navega a otra página (todavía en la ventana emergente) . además de las cookies, también establecí el tiempo de entrada en la base de datos (en caso de que la ventana emergente no esté abierta, un trabajo cron se encargará de restablecer los indicadores marcando el tiempo de entrada en la base de datos).

podría haber un caso en el que esté escribiendo algo en la ventana y no se cargue la página en 30 minutos, por lo que la ventana se cerrará automáticamente y perderá su trabajo. así que agregué una función para que cada onkeydown y onclick evento, se actualice el valor de tiempo de entrada en la cookie y la base de datos.

Además, puede haber más de una persona que está utilizando el sistema.

¿Esto consumirá demasiados recursos? No estoy familiarizado con cosas relacionadas con este problema. o hay una mejor manera de hacer esto?

gracias!

Respuesta

1

¡Si envía siempre onkeypress y cada evento onclick al servidor/base de datos, esto penetrará en su servidor! Para estas dos cosas, agregaría otra función de javascript que envía información si el usuario está activo en un intervalo de, por ejemplo, 2 o 5 minutos. Puede hacer esto mediante setInterval o setTimeout funciones y seguimiento, si el usuario estuvo activo en el último período. Si fue así, envíe la solicitud, si no, no envíe.

Cuestiones relacionadas