Pregunta

Actualmente estoy construyendo una web interno de la aplicación utilizada en una fábrica/almacén tipo de ubicación.Los usuarios estarán compartiendo un único PC entre varias personas, por lo que necesitamos tener un relativamente corto tiempo de espera de sesión para que la gente deje de vagar y salir de la aplicación registra en donde alguien más puede venir a la PC y hacer algo por debajo de la anterior nombre de usuario del usuario.

El problema con esto es una sesión de tiempo de espera mientras un usuario está de introducir información en un formulario, especialmente si se toman un largo tiempo.

¿Cómo lidiar con esto en una manera amigable?

¿Fue útil?

Solución

Mantener el servidor informado sobre el hecho de que el usuario está activamente el ingreso de información.Por ejemplo, enviar un mensaje al servidor si el usuario presiona la tecla TAB o hace clic con el ratón en un campo.La solución final depende de usted.

Otros consejos

Uso de AJAX con regularidad guardar el contenido de la parcialmente llena el formulario para que ellos no han perdido su trabajo si ellos se arranca el sistema.Heck, una vez que usted está haciendo eso, el uso de AJAX para mantener su sesión de que se agote el tiempo si que pasa el tiempo escribiendo.

El mejor consejo que probablemente sería preguntar a los usuarios para cerrar la ventana del navegador una vez que termine.Con el uso de session-cookies, en la sesión se terminará automáticamente cuando se cierra el navegador o de otra manera en una de 30 minutos de tiempo de espera (puede ser cambiado afaik).

Desde allí, por defecto, es que no hay ninguna interacción entre el navegador y el servidor una vez que se carga una página, usted tendría que tener un javascript en contacto con el servidor en segundo plano en formularios de páginas para actualizar la sesión, pero parece un poco demasiado problema para un problema menor.

Si el tiempo de espera de sesión es tan corto que el usuario no tiene el tiempo para llenar un formulario, me gustaría poner un script de AJAX que hace una petición http al servidor, cada pocos minutos, para mantener activa la sesión.Yo haría que sólo en las páginas que el usuario ha de rellenar en algo o ya se comenzó a llenar de algo.

Otra solución sería el uso de un tiempo de espera de sesión de recordatorio de secuencia de comandos que popups un cuadro de diálogo para recordar al usuario que la sesión está a tiempo.La ventana emergente debe mostrar un "cierre de sesión" y "Continuar usando la aplicación" que hace una petición ajax para actualizar el tiempo de la sesión a cabo.

Tal vez que un keep-alive javascript proceso podría ser útil en este caso.Si la secuencia de comandos de captura de algunos de los principales factores desencadenantes, enviar un "sigo escribiendo" mensaje al servidor para mantener activa la sesión.

han considerado que la ruptura de la forma en trozos más pequeños?

Monitorear el tiempo de espera y después de un pop-up para notificar al usuario de que su actual sesión expirará y el presente "ACEPTAR" o "Cancelar" para los botones.ACEPTAR para guardar la sesión que va (es decir,restablecer el contador a otros 5 minutos o 10 minutos - todo lo que usted necesita) o cancel (Cancelar) para permitir que la sesión para continuar con la cuenta regresiva a cero y por lo tanto, se termina.
Esa es una de muchas maneras de manejarlo.

Mediante un JavaScript "hilo" para mantener la sesión abierta es, para mí, una mala idea.

Es en contra de la idea de tiempo de espera de sesión que existe para liberar algunos recursos si no hay ningún usuario en la parte frontal de la aplicación.

Creo que se debe ajustar el tiempo de espera de sesión con el tiempo más precisa, con el fin de llenar el formulario en un típico "uso normal".

También puede ser proactivos por :

  1. tener un alert de JavaScript visualización no invasiva de advertencia (no un popup) al usuario antes de que el tiempo de espera expira, que dicen que la sesión está a punto de caducar (y dar un enlace para enviar una petición ajax para restablecer el tiempo de espera y quite la advertencia de que se evite que el usuario pierde el formulario que se encuentra actualmente escribiendo),
  2. y también tenemos una segunda JavaScript "hilo", que, si la sesión ha caducado, se redirige a la página de inicio de sesión con un mensaje que dice que la sesión ha caducado.

Se piensa que es la mejor porque es evitar que el usuario rellene un formulario complicado para nada, y manejar el caso cuando el usuario se ha ido.

Como una alternativa para las soluciones técnicas, usted puede hacer su solicitud en tal forma que cada vez que un determinado puesto de trabajo se realiza, por ejemplo, rellenar un formulario, se preguntará al usuario si quiere seguir haciendo otro trabajo o si lo ha hecho.Yould podría tener un startscreen con las opciones del menú y si el usuario elige una opción que él primero tiene que introducir sus credenciales.

O colocar un campo de contraseña en el formulario.Depende de cuántas formas que tienen que llenar en una sesión.

Cuando el usuario envía el formulario y su período de sesiones se ha agotado el tiempo, usted debe asegurarse de guardar los valores del formulario en algún lugar y, a continuación, pedir al usuario que inicie sesión de nuevo.Una vez que se han re-autenticado que se puede volver a enviar el formulario (como ninguno de sus datos se han perdido).

Yo había desarrollado algo que requiere de una larga sesión.El usuario que haya iniciado sesión en una página cuando él se sienta en la máquina y después de hacer su trabajo, de su sesión.Ahora puede utilizar el sistema por unos minutos o por horas.Para mantener la sesión activa hasta que la sesión, he utilizado el temporizador con javascript, se fue al servidor y actualizar un himno etiqueta con la hora actual en el servidor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top