Pregunta

¿Puede alguien darme un escenario en el que piense que los cursores ocupados están justificados? Siento que siempre son una mala idea desde la perspectiva de un usuario . Aclaración: con cursores ocupados, quiero decir que cuando el usuario ya no puede interactuar con la aplicación, solo puede mover el puntero del mouse de su reloj de arena y silbar una melodía.

¿Fue útil?

Solución

Creo que puede que tengas razón: en una aplicación asíncrona decente, nunca necesitas mostrar un cursor ocupado. El usuario siempre puede hacer algo incluso si se está completando la última gran operación.

Dicho esto, a veces las aplicaciones Java como Netbeans o Eclipse, o incluso Visual Studio, cuelgan sin el cursor ocupado y sin esperanza. Pero en ese caso, un cursor ocupado probablemente tampoco ayudaría mucho ... pero creo que tienes razón: los cursores ocupados son de una era sin subprocesos múltiples para las aplicaciones. En las aplicaciones Flex, por ejemplo, TODO es una devolución de llamadas automática basada en eventos, por lo que establecer un cursor ocupado no tendría sentido (aunque es posible, por supuesto).

Otros consejos

En resumen, creo que se debe impedir que el usuario haga cosas en su aplicación solo cuando el intervalo de espera es muy corto (2 segundos o menos) y la sobrecarga cognitiva de hacer subprocesos múltiples puede dar como resultado una menor aplicación estable Para más detalles, vea a continuación.

Para una operación que dura menos de 0.1 segundos , generalmente no es necesario que sea asíncrono o incluso que muestre un reloj de arena.

Para una operación que dura entre 0.1 y 2 segundos , normalmente no es necesario que sea asíncrono. Simplemente cambie el cursor al reloj de arena, luego haga el trabajo en línea. La señal visual es suficiente para mantener feliz al usuario final.

Si el usuario final inicia una operación que tomará solo unos segundos, estará enfocado " " modo de pensar en el que está inconscientemente esperando los resultados de su acción, y no ha cambiado su cerebro consciente fuera de ese enfoque particular. Por lo tanto, bloquear la interfaz de usuario (con un indicador visual de que esto ha sucedido) es perfectamente aceptable durante un período de tiempo tan corto.

Para una operación que dura más de 2 segundos , por lo general, debe ser asíncrono. Pero incluso entonces, debe proporcionar algún tipo de indicador de progreso. A las personas les resulta difícil concentrarse en ausencia de estimulación, y 2 segundos es lo suficientemente largo para que el usuario final pase naturalmente de la actividad consciente "enfocada" a la actividad consciente de "espera".

El indicador de progreso les da algo para ocuparlos mientras se encuentran en ese modo de espera, y también les proporciona los medios para determinar cuándo volverán a cambiar a su contexto "enfocado". Las señales visuales le dan al cerebro algo para estructurar esos cambios de contexto, sin exigir demasiado pensamiento consciente.

Donde se ensucia es donde tiene una operación que generalmente se completa en el tiempo X, pero ocasionalmente toma Y , donde Y es mucho mayor que X. Esto puede suceder para acciones remotas como alcanzar una red. Ahí es cuando es posible que necesite una combinación de las acciones anteriores. Por ejemplo, considere mostrar un cronómetro de huevos durante los primeros 2 segundos y solo luego encienda su indicador de progreso. Esto evita sacar al usuario final del contexto "enfocado" directamente al contexto de "espera" sin un paso intermedio.

No es específicamente el cursor de ocupado lo que es importante, pero ES IMPORTANTE, absolutamente, siempre es informar al usuario de que algo está sucediendo en respuesta a sus comentarios. Es importante darse cuenta de que sin un cursor ocupado, barra de progreso, pulsador, botón parpadeante, bastón giratorio, payaso bailando ... no importa NADA, si no lo tiene, y la computadora simplemente se queda ahí sin hacer nada. la computadora parece estar rota para el usuario.

los comentarios inmediatos para cada acción del usuario son increíblemente importantes.

Muestra un cursor ocupado cuando el usuario no puede hacer nada hasta que se complete la operación, incluida la salida de la aplicación.

Me parece interesante que no veas cursores ocupados en los navegadores web, tal vez por eso a la gente le gustan tanto.

No, espera, tengo una mejor respuesta. Muestra un cursor ocupado cuando la computadora está pensando .

Cuando uno golpea el botón Actualizar en un navegador web, debe aparecer el cursor ocupado inmediatamente para decirle al usuario que le avise que se está cargando una página.

Creo que fue No me hagas pensar que dijo que el tiempo de carga tolerable para humanos es cero segundos

Google dice:

  

Responsivo

     

Es posible escribir código que gana   Cada prueba de rendimiento en el mundo,   Pero eso sigue enviando a los usuarios en un fuego ardiente.   Rabia cuando intentan usarlo. Estas   son las aplicaciones que no son   lo suficientemente receptivo - los que se sienten   lento, colgar o congelar para   Períodos significativos, o tomar demasiado tiempo   para procesar la entrada.

Hay dos propósitos para ello:

  1. Indica al usuario que algo está sucediendo.
  2. Indique al usuario que no se puede hacer nada en este momento.

El cursor de ocupado es mejor señal sobre la operación que nada. Para operaciones más duraderas se debe usar algo mejor. Por ejemplo, los navegadores siguen funcionando cuando se recupera una página e incluso hay un botón para detener la operación. Como la interfaz de usuario es completamente funcional, no es necesario utilizar el cursor ocupado. Sin embargo, el cursor ocupado puede usarse incluso en este tipo de situaciones en las fases de transición, como al iniciar la operación o al detenerla.

Intento usarlos en cualquier acción que pueda tomar de 0,5 a 3 segundos, para acciones más largas creo que se deben usar indicadores de progreso con suficiente información.

Noté con Fedora 8 al menos que cuando una aplicación configura el " ocupado " cursor, el " ocupado interactivo " uno se muestra realmente. Supongo que esto se debe a que el sistema aún responde al ingreso del mouse (como arrastrar la ventana, etc.). Además, seleccionando " ocupado interactivo " El cursor explícitamente en Linux es complicado: http://www.pixelbeat.org/programming/x_cursors/

Lo único que creo que hace el cursor ocupado es que informa al usuario que ...

  

No te estoy ignorando, solo estoy haciendo otra cosa que puede tomar un tiempo

Si bien es absolutamente necesario alertar al usuario de que su aplicación está haciendo algo, un cursor ocupado solo es útil durante los primeros segundos de procesamiento. Para un retraso de más de unos 15-20 segundos, se debe presentar algo más, como una barra de progreso, un mensaje de estado, un cuadro de mensaje, lo que sea. La gente asume que su software se ha bloqueado después de aproximadamente un minuto y tratará de terminarlo. A veces, las señales visuales en general son tan importantes como un cursor ocupado.

Por ejemplo, las aplicaciones con pestañas que no responden con el resaltado adecuado hasta que se completa la operación en la pestaña se pueden corregir actualizando la pestaña temporalmente hasta que se completen todas las operaciones. A veces, solo una pequeña optimización o refactorización limpiará la horrible capacidad de respuesta de la interfaz de usuario como esta.

Los usaría solo para completar cosas rápidamente, como por ejemplo, menos de medio segundo. Si algo lleva más tiempo, aparecerá un cuadro de diálogo de progreso o aparecerá una barra de progreso en la barra de estado o en algún otro lugar de la interfaz.

El usuario siempre debe poder cancelar la acción si tarda demasiado en completarse.

En respuesta al comentario, el cursor ocupado solo sería visible durante aproximadamente medio segundo, ya que una vez que el cuadro de diálogo de progreso está activo, debería cambiar a uno de esos " medio ocupado " cursores, o simplemente el cursor de flecha normal.

Debes evitar tener un cursor ocupado hacia arriba excepto en circunstancias extremas, y si crees que lo necesitas, entonces piensa de nuevo y rediseña.

Por ejemplo, para indicar que has hecho clic en un botón, aunque no haya terminado de procesar el evento. Si no hubiera alguna indicación, el usuario podría intentar hacer clic en el botón nuevamente, causando todo tipo de maldad.

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