Pregunta

Estoy buscando maneras de mejorar una página Web que inicia una larga duración (> 2 minutos) de trabajo del lado del servidor. La versión actual de la página sólo relojes para toda la duración de la tarea, que puede ser muy frustrante para el usuario.

Ya tengo algunas ideas sobre cómo podría mejorar la experiencia del usuario, pero todos ellos implicaría el uso de AJAX en cierta medida. Debido a las experiencias anteriores que he tenido en este proyecto, ya sé que no todos los usuarios han habilitado JavaScript o está disponible.

Si se asume que el proceso del lado del servidor ya se ha optimizado tanto como sea posible, qué otra cosa podía hacer para mejorar la experiencia de los todos usuarios tanto como sea posible?

¿Fue útil?

Solución

Mover el proceso del servidor de larga duración fuera de banda.

Cuando los usuarios inician la tarea de la aplicación puede escribir un mensaje a una cola de algún tipo; esto es por lo general muy rápido, por lo que los usuarios obtienen el control de nuevo rápidamente. Una vez que se pone en cola el mensaje, otro proceso especializado (un servicio, una tarea programada, una tarea programada, etc.) lo recoge y lo ejecuta la tarea adecuada a la primera oportunidad.

Para los usuarios con Javascript habilitado, puede configurar un temporizador para comprobar el estado de la tarea a través de AJAX y alerta cuando se termina la tarea.

Puede mantener sus usuarios no informados javascript mostrando sus tareas pendientes y terminadas en una común, lugar visible en sus páginas. Por supuesto, tienen que seguir navegando a beneficio de eso, por lo que también hay que dejar claro que en ocasiones los usuarios deben actualizar la página si está esperando una tarea a fin.

Otros consejos

  • crear la tabla en la base de datos (o en memoria objeto)
  • tarea de larga duración va a actualizar el progreso en esta tabla (objeto)
  • página Web mostrará los datos de esta tabla (u objeto). cómo actualizar la página. - es su elección
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top