Справочник/Программные элементы управления/

Индикатор процесса

Индикатор процесса (progress bar) — группа схожих по задачам и функциональности базовых элементов управления, предназначенных для индикации состояния выполнения какого-либо продолжительного процесса.

Виды индикаторов прогресса

Приемы

Невозможность расчёта продолжительности процесса при наличии средних величин

В некоторых случаях очень сложно определить продолжительность процесса, но при этом она достаточно конечная и имеет некое среднее значение — например, при получении данных, объем которых заранее неизвестен, либо когда канал связи достаточно нестабилен. В таких случаях можно использовать «бесконечный» иникатор, который обновляется со стабильной периодичностью, но его скорость постоянно падает в обратной экспоненциальной зависимости — то есть по мере приближения к 100%, скорость движения постоянно замедляется, а значит индикатор никогда не достигнет 100% до тех пор, пока процесс не закончится.

При этом, чтобы не раздражать пользователя и это не было серым/черным паттерном взаимодействия, необходима очень точная настройка начальной скорости и величины замедления, которая должна исходить из средних значений скорости. Эти значения могут вычисляться исходя из статистики предыдущих скачиваний. Также такой индикатор прогресса должен всегда сопровождаться какими-нибудь дополнительными индикациями для количественной оценки выполнения процесса, например, меткой с количеством скачанный мегабайт данных и текущей скоростью скачивания.