Параметр queue

Параметр queue отвечает за управление очередью уведомлений в библиотеке Noty. Он определяет, как будут отображаться несколько уведомлений, поступающих одновременно, и влияет на порядок их появления и скрытия. Понимание этого параметра особенно важно для приложений, где уведомления могут быть частыми и динамическими.


Основное назначение

По умолчанию, Noty использует глобальную очередь уведомлений. Когда несколько уведомлений создаются одновременно, они попадают в эту очередь и отображаются последовательно, одно за другим. Параметр queue позволяет настроить поведение этой очереди:

  • true – уведомления помещаются в очередь (поведение по умолчанию).
  • false – уведомления не учитываются в очереди и отображаются сразу, независимо от других уведомлений.

Пример использования:

new Noty({
    text: 'Сообщение без очереди',
    type: 'info',
    timeout: 3000,
    queue: false
}).show();

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


Поведение при queue: true

Когда queue установлено в true, уведомления создаются по следующему принципу:

  1. Первое уведомление отображается сразу.
  2. Все последующие уведомления ждут своей очереди.
  3. Как только текущее уведомление закрывается (по таймауту или вручную), следующая запись в очереди показывается автоматически.

Пример:

new Noty({ text: 'Первое уведомление', type: 'success', timeout: 2000, queue: true }).show();
new Noty({ text: 'Второе уведомление', type: 'warning', timeout: 2000, queue: true }).show();
new Noty({ text: 'Третье уведомление', type: 'error', timeout: 2000, queue: true }).show();

В этом примере Второе уведомление появится только после закрытия Первого уведомления, а Третье уведомление – после второго.


Совместное использование с параметрами timeout и progressBar

Очередь тесно связана с управлением временем отображения уведомлений:

  • timeout определяет длительность показа каждого уведомления.
  • progressBar визуально отображает оставшееся время.

Пример:

new Noty({
    text: 'Задача выполнена',
    type: 'success',
    timeout: 5000,
    progressBar: true,
    queue: true
}).show();

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


Создание независимых очередей

Noty поддерживает создание именованных очередей для разделения уведомлений по категориям или областям интерфейса. Параметр queue можно заменить на объект с методом name, чтобы уведомления попадали в отдельную очередь:

var customQueue = new Noty.Queue({ maxVisible: 3 });

new Noty({
    text: 'Уведомление из отдельной очереди',
    type: 'alert',
    queue: customQueue
}).show();

Особенности такого подхода:

  • Каждая очередь управляется независимо.
  • Можно ограничить количество одновременно отображаемых уведомлений (maxVisible).
  • Уведомления из одной очереди не блокируют уведомления из другой.

Практические советы

  • Для систем с частыми уведомлениями лучше использовать очередь (queue: true), чтобы избежать наложения и хаотичного отображения.
  • Если уведомление критическое и должно появиться мгновенно, следует указать queue: false.
  • Создание отдельных очередей позволяет разделять уведомления по смыслу: ошибки, предупреждения, информационные сообщения.

Параметр queue является ключевым инструментом для управления последовательностью и визуальной организацией уведомлений в Noty. Его корректная настройка повышает удобство взаимодействия пользователя с интерфейсом и предотвращает перегрузку экрана.