Состояния загрузки существуют для того, чтобы ответить пользователю на один вопрос: что-нибудь происходит? Не получив ответа, люди нажимают еще раз, перезагружают страницу или уходят. Правильный ответ зависит от того, как долго они ждут.
При очень коротком ожидании, примерно в одну десятую секунды, большинство людей не замечают задержки, поэтому индикатор только добавляет мерцания. Распространенный метод — немного подождать, прежде чем показывать счетчик, поэтому в быстрых ответах он вообще никогда не отображается.
С ожиданием в секунду или несколько секунд покажите обратную связь, где появится результат. Скелетный экран, серый контур будущего макета, хорошо работает для списков, карточек и профилей, поскольку показывает, что будет дальше, и уменьшает сдвиг макета. Спиннер работает на небольших площадях или когда результат не имеет предсказуемой формы.
Для длительных задач, таких как загрузка, экспорт или создание искусственного интеллекта, покажите реальный прогресс, если вы можете его измерить, объясните, что происходит, и позвольте людям отменить или продолжить другую работу. Спиннер, который вращается в течение минуты без какой-либо другой информации, воспринимается как неудача.
Элементу управления, запустившему действие, также необходимо состояние. Кнопка отправки, которая переключается в состояние загрузки и не может быть нажата дважды, предотвращает дублирование заказов и сообщений. Когда загрузка закончится, четко переходите к успеху или ошибке, а не молча возвращайтесь к настройкам по умолчанию.
Анимация здесь помогает, но держите ее спокойной и короткой в цикле и соблюдайте настройку замедленного движения. ExodeUI, который мы создаем, позволяет вам создать загрузчик или кнопку с состояниями загрузки, успеха и ошибки в одном файле, между которыми переключается ваш код.