web-dev-qa-db-fra.com

Du point de vue d'une interface utilisateur (ou d'un utilisateur), qu'est-ce qu'une action atomique?

Je crée de nombreuses interfaces utilisateur qui contiennent plusieurs niveaux d'objets. Un exemple serait par exemple un bon de commande. Un bon de commande contient des informations concernant la commande elle-même, mais il contient également un nombre non spécifié d'éléments de campagne qui, à leur tour, contiennent des informations particulières.

Un problème que j'ai avec ce type d'interface utilisateur est ce qui devrait être considéré comme une action atomique (c'est-à-dire une action qui ne devrait réussir que complètement ou échouer complètement). L'enregistrement des modifications est une telle action.

Je pouvais voir chaque élément de ligne atomique et dans une interface Web utiliser la technologie Ajax pour enregistrer chaque élément de ligne qui a été modifié dès que la ligne n'a plus de focus. Cela accélérerait le temps de réponse. Cependant, cela fait de la sauvegarde de chaque ligne sa propre action atomique.

D'un autre côté, la sauvegarde de tous les changements de l'ordre entier pourrait être considérée comme une action atomique. Cela signifie que l'utilisateur peut changer de ligne et annuler toutes les modifications. En ce moment, soit tout le document est enregistré, soit rien.

Existe-t-il des études sur les interfaces utilisateur ou les principes de conception qui peuvent m'aider à résoudre ce dilemme?

11
txwikinger

J'ai dû faire face à un problème similaire récemment - je montre une carte de profil d'un objet, avec plusieurs entrées de données (nom, description, importance, etc.), qui peuvent être modifiées individuellement, mais les modifications ne prennent effet que lorsque le dans l'ensemble, "Enregistrer" est enfoncé.

La façon dont je l'ai fait était:

  • Afficher chaque ligne comme une "étiquette", c'est-à-dire en lecture seule
  • Au survol de la souris, sélectionnez la ligne et affichez une icône "Modifier"
  • Si vous appuyez dessus, la ligne devient modifiable
  • Une fois le focus perdu, la ligne est à nouveau en lecture seule (avec la nouvelle valeur)
  • Maintenant, lorsque vous passez la souris, j'affiche une icône "Annuler" qui revient à la valeur précédente.
  • La carte de profil entière a un "Enregistrer" (qui n'apparaît qu'une fois qu'une modification a été apportée), indiquant clairement que rien n'est enregistré jusque-là.

Je pense que cela donne à l'utilisateur le plus de flexibilité et est très intuitif ...

J'espère que cela t'aides.

9
Dan Barak

Vous devriez peut-être avoir plusieurs niveaux d'actions atomiques.

Vous pouvez enregistrer chaque élément de campagne pour préserver le travail de l'utilisateur (et si vous voulez vraiment avoir de la fantaisie, créez une pile d'annulation). Mais la commande ne sera pas entrée tant que l'utilisateur n'aura pas cliqué sur Enregistrer.

Pensez à un client de messagerie - basé sur le Web ou autre - qui enregistre automatiquement les brouillons.

Voir aussi: Annuler à plusieurs niveaux

3
Patrick McElhaney

Vous pouvez créer plusieurs pages (comme dans un assistant) sur lesquelles vous regroupez les éléments associés. Ensuite, vous faites de chaque page une action atomique.

Par exemple, ayez une page avec les produits de la commande, une avec les informations de livraison, une avec les détails de facturation et une page d'aperçu avant de soumettre.

0
Jouke van der Maas