Индикатор прогресса¶
Индикатор прогресса — это элемент графического пользовательского интерфейса, предназначенный для отображения хода выполнения длительной операции, такого как загрузка файла, установка программного обеспечения, обработка данных или передача информации. Основная функция индикатора прогресса — информировать пользователя о том, что система не зависла, а выполняет задачу, а также давать приблизительную оценку времени до завершения операции. Индикаторы прогресса классифицируются по способу отображения информации (детерминированные и недетерминированные), по форме (линейные, круговые, кольцевые) и по контексту использования (в приложениях, на веб-страницах, в операционных системах).
¶История
Первые индикаторы прогресса появились в 1970-х годах в связи с развитием интерактивных компьютерных систем. Одним из ранних примеров является индикатор в операционной системе Xerox Alto (1973), который отображал процесс загрузки в виде полосы. В 1980-х годах, с распространением персональных компьютеров и графических интерфейсов (Mac OS, Windows), индикаторы прогресса стали стандартным элементом. В 1985 году в системе Macintosh был представлен «часы-песочные» — недетерминированный индикатор, указывающий на занятость системы. В 1990-х годах, с развитием веба, появились анимированные индикаторы загрузки страниц, а в 2000-х — индикаторы в мобильных приложениях.
¶Классификация
¶По типу отображения информации
- Детерминированные (определённые) — отображают точный процент выполнения задачи. Используются, когда система может оценить объём работы (например, копирование файла известного размера). Обычно представляют собой полосу, заполняющуюся от 0% до 100%.
- Недетерминированные (неопределённые) — показывают, что процесс выполняется, но без указания точного времени завершения. Применяются, когда объём работы неизвестен (например, поиск в сети, ожидание ответа сервера). Часто выглядят как бесконечно вращающееся кольцо или полоса с движущейся точкой.
- Гибридные — сочетают элементы обоих типов: например, на начальном этапе отображается недетерминированный индикатор, а после получения оценки — детерминированный.
¶По форме
- Линейные (горизонтальные) — наиболее распространённый тип. Представляют собой прямоугольную полосу, которая заполняется цветом слева направо. Используются в операционных системах (Windows, macOS), браузерах, программах для загрузки.
- Круговые (кольцевые) — отображают прогресс в виде дуги, которая заполняется по часовой стрелке. Часто применяются в мобильных приложениях, веб-интерфейсах, а также в системах, где ограничено пространство.
- Спиральные или волновые — редкие формы, используемые в специализированных приложениях (например, в аудиоредакторах для отображения обработки звука).
- Текстовые — отображают прогресс в виде чисел (например, «45%») или фраз («Загрузка файла...»). Часто комбинируются с графическими индикаторами.
¶По контексту использования
- Системные — встроенные в операционные системы (индикатор загрузки ОС, индикатор копирования файлов).
- Прикладные — в программах (индикатор установки, индикатор рендеринга видео, индикатор сканирования антивирусом).
- Веб-интерфейсы — индикаторы загрузки страниц, отправки форм, загрузки файлов на сервер.
- Мобильные — адаптированные под сенсорные экраны (круговые, анимированные).
¶Устройство и принцип работы
Индикатор прогресса как программный компонент состоит из нескольких частей:
- Модель данных — хранит информацию о текущем состоянии операции (общий объём, выполненный объём, статус).
- Визуальный рендеринг — отрисовывает графическое представление (полосу, кольцо, текст) на основе данных модели.
- Логика обновления — периодически (обычно с частотой 10–60 раз в секунду) получает от системы новые данные и обновляет отображение.
В детерминированных индикаторах используется формула: прогресс = (выполнено / всего) * 100%. В недетерминированных — анимация, не зависящая от реальных данных (например, вращение кольца с постоянной скоростью).
¶Применение
Индикаторы прогресса широко используются в различных сферах:
- Операционные системы — отображение загрузки Windows, macOS, Linux; копирование и перемещение файлов; установка обновлений.
- Программное обеспечение — установка приложений (например, установщики Microsoft Office, Adobe Creative Suite); рендеринг видео (Adobe Premiere Pro, DaVinci Resolve); сжатие и распаковка архивов (WinRAR, 7-Zip); сканирование антивирусами (Kaspersky, Dr.Web).
- Веб-разработка — загрузка файлов на сервер (например, через HTML5
<progress>); отправка форм; загрузка страниц (индикаторы в браузерах). - Мобильные приложения — загрузка контента (YouTube, VK); обновление приложений (App Store, Google Play); синхронизация данных (облачные сервисы).
- Игры — загрузка уровней, сохранение игры, установка игровых клиентов (Steam, Epic Games Store).
- Промышленность и наука — отображение прогресса научных расчётов (MATLAB, симуляции); загрузка данных с приборов.
¶Примеры
- Windows — индикатор копирования файлов в виде зелёной полосы с процентом и оставшимся временем.
- macOS — индикатор загрузки приложений в виде синей полосы с анимацией.
- Веб-браузеры — индикатор загрузки страницы в виде вращающегося круга (Chrome) или полосы (Firefox).
- Мобильные приложения — круговой индикатор загрузки видео в YouTube.
- Игры — индикатор загрузки уровня в Cyberpunk 2077 в виде полосы с текстом.
¶Интересные факты
- Первый индикатор прогресса в виде полосы был создан в 1973 году для системы Xerox Alto.
- В 1985 году в Macintosh был представлен «часы-песочные» — недетерминированный индикатор, который стал символом ожидания.
- В 1990-х годах появились анимированные индикаторы загрузки веб-страниц, которые часто использовали GIF-анимацию.
- В 2000-х годах, с развитием мобильных устройств, стали популярны круговые индикаторы, так как они занимают меньше места.
- Некоторые индикаторы прогресса могут быть «лживыми» — например, индикатор загрузки Windows, который часто «зависает» на 99% из-за особенностей системы.
- В 2010-х годах появились индикаторы с обратным отсчётом времени (например, «Осталось 5 минут»), которые более информативны для пользователя.
¶Критика
Индикаторы прогресса критикуются за несколько недостатков:
- Неточность — детерминированные индикаторы могут быть неточными, если система неправильно оценивает объём работы (например, при копировании файлов с переменной скоростью).
- Зависание — недетерминированные индикаторы не дают информации о времени завершения, что может вызывать раздражение.
- Ложное чувство контроля — пользователи могут считать, что индикатор влияет на скорость выполнения, хотя это не так.
- Дизайн — неудачный дизайн (слишком маленький, неконтрастный) может снижать удобство использования.
Для устранения этих проблем применяются методы: использование гибридных индикаторов, добавление текстовой информации (процент, время), анимация для сглаживания скачков.
¶Источники
- Дон Норман, «Дизайн привычных вещей» (1988)
- Джеф Раскин, «Интерфейс: новые направления в проектировании компьютерных систем» (2000)
- Документация Microsoft по элементу ProgressBar (Windows)
- Спецификация HTML5: элемент
<progress> - Статья «The History of the Progress Bar» на сайте UX Movement (2015)
- Материалы конференции CHI (ACM Conference on Human Factors in Computing Systems)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


