Алан Дэй (Allan Day)
aday@gnome.org

# Индикаторы ожидания

Индикатор ожидания — это стандартный элемент пользовательского интерфейса, который показывает о выполнении некоторой задачи. В отличие от индикатора выполнения индикатор ожидания демонстрирует сам факт наличия задачи, но не показывает, какая часть задачи выполнена.

# Когда использовать

Индикатор выполнения обычно требуется, если операция занимает больше трёх секунд и необходимо явно показать, что она действительно выполняется. Иначе пользователь будет сомневаться, не произошла ли какая-нибудь ошибка.

С другой стороны индикаторы выполнения могут стать источником недоразумений, особенно когда они появляются на короткое время. Если операция занимает меньше трёх секунд, лучше использовать индикатор выполнения, поскольку элементы с анимацией, которые показываются на короткое время отвлекают пользователей от работы с приложением.

Индикаторы ожидания не показывают количественного выполнения задания, они лучше подходят для коротких операций. Если задание выполняется больше минуты, то вместо индикатора ожидания лучше применить индикатор выполнения.

Внешний вид индикатора ожидания определяет целесообразность применения индикатора в различных ситуациях. Индикаторы ожидания можно использовать в списках, заголовочных панелях, поскольку индикаторы имеют небольшие размеры и их легко встроить в указанные выше элементы. Их можно эффективно использовать в контейнерах квадратной и прямоугольной формы. Если вертикальная область сильно ограничена, то вместо индикатора ожидания можно применить индикатор выполнения.

# Общие рекомендации

Если время выполнения операции не определено, в течение первых трёх секунд показывайте индикатор ожидания, если этого времени недостаточно для выполнения операции, покажите индикатор выполнения. Индикатор выполнения не нужно показывать, если время выполнения операции меньше трёх секунд.

Индикатор ожидания должен располагаться рядом с элементами интерфейса, с которыми он связан. Если нажатие на кнопку инициирует выполнение продолжительного действия, индикатор должен располгаться рядом с такой кнопкой. При загрузке содержимого индикатор должен располагаться в месте, в котором содержимое появится после загрузки.

Generally, only one progress spinner should be displayed at once. Avoid showing a large number of spinners simultaneously - this will often be visually overwhelming.

Рядом с индикатором ожидания можно расположить текстовую метку с описанием выполняемой задачи.

Если индикатор ожидания долго находится на экране, в текстовой метке можно указать не только выполняемую задачу, но и этап её выполнения, который можно выразить в процентном соотношении, оставшемся времени или выполняемой подзадаче (например, «загрузка модулей», «экспортирование страниц» и т. п.).

# API reference

GtkSpinner