Найти в Дзене

Что учесть при реализации форм с автосохранением: дизайн, UX, логика

Эта статья про реализацию логики автосохранения для форм в бизнес-системах то есть в системах для регулярной долгой работы.

Я не зря поместил сюда мой стишок-пирожок про Колю. Современные масс-сервисы толкают нас в сторону автосохранения: например, Гугл-Диск и приложения на нём, или тот же Дзен автоматом сохраняет публикацию в процессе написания.

Если есть возможность — делайте автосохранение.

Что учесть при режиме с автосохранением:

  • Нужна контекстная история изменений: кто, когда, с каких и на какие менял данные. Если пользователь где-то ошибся и заметил это через время, то ему могут потребоваться прежние данные для восстановления. Кстати, версионность, когда можно откатиться к какой-то сохранённой версии, делать не обязательно. Часто пользователям достаточно найти прежние верные данные и внести их — поддерживать для этого версионность слишком дорого.
  • Режим автосохранения должен быть выдержан по всей системе. Нельзя делать автосохранение для части форм — надо делать для всех.
  • Пользователь должен регулярно получать информацию о том, что данные сохранены. Необходимо сделать индикатор, который будет показывать, что данные сохраняются и сохранены. Этот индикатор должен быть всегда в зоне видимости (не оставаться вверху при скролле).
Индикатор о том, что данные сохранены всегда в зоне видимости.
Индикатор о том, что данные сохранены всегда в зоне видимости.
  • Автосохранение должно срабатывать не только на потерю фокуса (при переходе от поля к полю). Например, могут быть текстовые поля на форме, в которые пользователь будет вбивать приличный объём текста. Если сохранение работает на фокусы, то пока пользователь не закончит текст и не уйдёт с поля, сохранение не сработает. Это плохо — может произойти что угодно в процессе написания большого текста. Фокусное автосохранение необходимо подстраховать, например, автосохранением при бездействии — если пользователь замер на 3–5 секунд, то сохраняем в это время.
  • Автосохранение заменяет только ручное сохранение, а не жизненный процесс формы. Может потребоваться кнопка, которая будет переводить запись из состояния “Черновик” в состояние “Я закончил создавать эту запись”.

Если автосохранение не сделали, то помогите пользователю не потерять введённые данные:

  • Не делайте короткие сессии для работы с системой.
  • При попытке закрыть форму с несохранённой информацией — уведомляйте пользователя об этом.
Битрикс24 не имеет автосохранения, но предлагает сохранить при закрытии формы.
Битрикс24 не имеет автосохранения, но предлагает сохранить при закрытии формы.