Индикатор процесса
Индикатор процесса (progress bar) — группа схожих по задачам и функциональности базовых элементов управления, предназначенных для индикации состояния выполнения какого-либо продолжительного процесса.
Виды индикаторов прогресса
- Индикатор процесса (по умолчанию) — элемент, отображающий состояние выполнения процесса, имеющего заранее известную длительность или объем. Выглядит как прямоугольник, который заливается цветом слева на долю, равную доле выполнения процесса относительно 100% завершенности.
- Дискретный индикатор процесса — аналогичен индикатору по умолчанию, но используется, когда процесс состоит из относительно малого количества этапов. Тогда эти этапы явно показаны внутри прямоугольника (например, вертикальными отбивками), и заливаются только выполненные этапы целиком.
- Неопределенный индикатор процесса — группа индикаторов, отображаемых в течение выполнения процесса, длительность которого невозможно предсказать. Все они используют зацикленную анимацию, повторяемую до тех пор, пока выполняется процесс. По завершении индикатор, как правило, скрывается. Данные виды индикаторов могут иметь как прямоугольную, так и круглую и любую другую форму.
Приемы
Невозможность расчёта продолжительности процесса при наличии средних величин
В некоторых случаях очень сложно определить продолжительность процесса, но при этом она достаточно конечная и имеет некое среднее значение — например, при получении данных, объем которых заранее неизвестен, либо когда канал связи достаточно нестабилен. В таких случаях можно использовать «бесконечный» иникатор, который обновляется со стабильной периодичностью, но его скорость постоянно падает в обратной экспоненциальной зависимости — то есть по мере приближения к 100%, скорость движения постоянно замедляется, а значит индикатор никогда не достигнет 100% до тех пор, пока процесс не закончится.
При этом, чтобы не раздражать пользователя и это не было серым/черным паттерном взаимодействия, необходима очень точная настройка начальной скорости и величины замедления, которая должна исходить из средних значений скорости. Эти значения могут вычисляться исходя из статистики предыдущих скачиваний. Также такой индикатор прогресса должен всегда сопровождаться какими-нибудь дополнительными индикациями для количественной оценки выполнения процесса, например, меткой с количеством скачанный мегабайт данных и текущей скоростью скачивания.