De nombreuses applications Web adoptent le modèle de conception "sauvegarde automatique" pour un certain nombre de raisons différentes. L'une d'elles est que les modifications ne soient pas perdues lorsque les utilisateurs ont terminé un certain nombre de tâches ou d'actions et oublient d'enregistrer, une autre est lorsque la connexion n'est pas stable et parfois l'application s'exécute en mode hors ligne afin de maintenir les états de l'application cohérents .
Je me demande comment ces types d'applications permettent à l'utilisateur d'annuler des actions, car les déclencheurs de l'enregistrement automatique peuvent ne pas correspondre aux blocs logiques d'actions que l'utilisateur a effectués, et il peut ne pas être évident pour l'utilisateur quelles sont les actions qui ils veulent annuler.
J'ai l'impression que vous pensez que l'enregistrement automatique enregistre un instantané complet du document. Si cela était vrai, il est en effet difficile de voir comment fonctionne l'annulation.
Voici ce qui se passe réellement: chaque fois que l'utilisateur effectue une action, cette action est enregistrée localement (sur la machine de la personne). Vous avez appelé cela un morceau logique. Lorsque la sauvegarde automatique démarre, tous ces morceaux logiques sont enregistrés dans le cloud. Chaque bloc logique est réversible, vous permettant d'annuler l'action depuis le cloud.
Vous pouvez annuler en stockant les modifications précédentes. Vous devez donc garder une trace de l'histoire. Lorsque vous avez une application Web multi-utilisateurs, cela peut potentiellement devenir un cauchemar. Parce que vous pourriez avoir une cascade d'actions utilisateur entre différents utilisateurs. L'intégrité des données est donc en jeu. Certains ont peut-être modifié votre changement. Alors quoi? Vous devez garder à l'esprit comment le système sera utilisé.
L'enregistrement automatique est populaire pour les applications Web car pour diverses raisons, mais l'une des plus importantes est le manque de fiabilité de l'interface client-serveur. Les réponses aux demandes HTTP peuvent expirer, les sockets Web peuvent se déconnecter ou l'utilisateur peut simplement appuyer sur un bouton et quitter la page ou fermer le navigateur par accident.
L'ingénierie de la sauvegarde automatique n'est pas anodine. Souvent, les applications d'entreprise doivent de toute façon conserver une pile d'annulation (pour plus de convivialité), ce qui est une façon de faire la sauvegarde automatique sans ajouter beaucoup de code supplémentaire.
Une autre manière différente mais complémentaire de le faire consiste à enregistrer l'état du document ou de l'application dans des instantanés et à stocker les différences. Cela fournit une pile d'états précédents sans consommer beaucoup de données.
Franchement, c'est plus une question d'implémentation qu'une question UX, mais comme la sauvegarde automatique est une tendance UX populaire et actuelle, j'ai trouvé la question intéressante
Je ne suis pas très familier avec le développement d'applications Web, mais je peux vous dire que la plupart des applications de bureau utilisent le modèle de conception de commande .
Cela signifie en fait que chaque action utilisateur est enregistrée de telle manière qu'elle peut être exécutée et annulée à tout moment. L'application de ces actions dans une séquence vous donne l'état de l'application.
Je suppose que les applications Web font la même chose, avec une partie de la file d'attente d'actions persistante à intervalles fixes.