Estoy creando muchas IU que contienen múltiples niveles de objetos. Un ejemplo sería, por ejemplo, una orden de compra. Un pedido de compra tiene información sobre el pedido en sí, pero también contiene un número no especificado de líneas de pedido que a su vez contienen información particular.
Un problema que tengo con este tipo de interfaz de usuario es lo que debería verse como una acción atómica (es decir, una acción que solo debería tener éxito por completo o fallar por completo). Guardar cambios es tal acción.
Pude ver cada elemento de línea atómico y en una interfaz web usar la tecnología Ajax para guardar cada elemento de línea que se ha cambiado tan pronto como la línea ya no tiene foco. Esto aceleraría el tiempo de respuesta. Sin embargo, hace que guardar cada línea sea su propia acción atómica.
Por otro lado, guardar todos los cambios de todo el orden podría verse como una acción atómica. Esto significa que el usuario puede cambiar líneas y cancelar todos los cambios. En este momento, se guarda todo el documento o nada.
¿Hay algún estudio sobre interfaces de usuario o principios de diseño que pueda ayudarme con este dilema?
Recientemente tuve que lidiar con un problema similar: muestro una tarjeta de perfil de un objeto, con múltiples entradas de datos (nombre, descripción, importancia, etc.), que se pueden cambiar individualmente, pero los cambios no surten efecto hasta que En general, se presiona "Guardar".
La forma en que lo hice fue:
Creo que le da al usuario la mayor flexibilidad y es muy intuitivo ...
Espero que esto ayude.
Tal vez deberías tener múltiples niveles de acciones atómicas.
Puede guardar cada línea de pedido para preservar el trabajo del usuario (y si realmente desea hacerse elegante, cree una pila de deshacer). Pero el pedido no se ingresará hasta que el usuario haga clic en Guardar.
Piense en un cliente de correo electrónico, basado en la web o de otra manera, que guarda borradores automáticamente.
Consulte también: Deshacer multinivel
Puede crear varias páginas (como en un asistente) en las que agrupe elementos relacionados. Luego haces de cada página una acción atómica.
Por ejemplo, tenga una página con los productos del pedido, una con la información de entrega, otra con los detalles de facturación y una página de resumen antes de enviar.