Noty.clearQueue()

Метод Noty.clearQueue() используется для удаления всех уведомлений, находящихся в очереди на отображение, но ещё не показанных пользователю. В контексте работы с библиотекой Noty это критически важно для контроля последовательности уведомлений и предотвращения перегрузки интерфейса.

Основные свойства метода

  • Статический метод: вызывается напрямую через объект Noty, без создания экземпляра уведомления.
  • Возврат значения: метод не возвращает результат. Его задача — очистка внутренней очереди.
  • Очередь уведомлений: включает только те уведомления, которые были добавлены в очередь через new Noty(...).show() или через методы с отложенным показом, но ещё не отображены.

Синтаксис

Noty.clearQueue();

Принцип работы

Библиотека Noty поддерживает очередь уведомлений, что позволяет показывать их по одному с заданной задержкой. Если создать несколько уведомлений одновременно, они будут помещены в очередь. Метод clearQueue() обнуляет эту очередь, не затрагивая уведомления, которые уже отображаются на экране.

Пример очереди:

new Noty({text: 'Уведомление 1', timeout: 3000}).show();
new Noty({text: 'Уведомление 2', timeout: 3000}).show();
new Noty({text: 'Уведомление 3', timeout: 3000}).show();

В этом случае уведомления будут показаны одно за другим. Если выполнить:

Noty.clearQueue();

то все уведомления, ожидающие своей очереди (например, Уведомление 2 и Уведомление 3), будут удалены, и не появятся на экране.

Отличие от Noty.closeAll()

Метод Noty.closeAll() закрывает все активные уведомления, которые уже отображаются, тогда как Noty.clearQueue() работает исключительно с ожидающими в очереди уведомлениями. Часто их используют совместно для полного контроля уведомлений:

Noty.closeAll(); // закрывает все видимые уведомления
Noty.clearQueue(); // очищает очередь ожидающих уведомлений

Применение в реальных сценариях

  1. Отмена устаревших уведомлений При динамическом обновлении данных можно удалить все старые уведомления, которые еще не были показаны:
Noty.clearQueue();
new Noty({text: 'Данные обновлены', type: 'success', timeout: 3000}).show();
  1. Предотвращение перегрузки интерфейса Если приложение генерирует много уведомлений за короткий промежуток времени, можно очищать очередь, чтобы пользователь видел только актуальные сообщения.

  2. Сценарии с модальными окнами Перед открытием важного модального окна можно очистить очередь, чтобы предыдущие уведомления не отвлекали пользователя:

Noty.clearQueue();
openModal();
new Noty({text: 'Окно открыто', type: 'info', timeout: 2000}).show();

Совместимость с другими методами

  • Noty.setMaxVisible(): Ограничивает количество одновременно видимых уведомлений. Очистка очереди позволяет контролировать появление новых уведомлений в рамках этого ограничения.
  • Noty.overrideDefaults(): Можно задать глобальные настройки, после чего clearQueue() будет очищать очередь с учётом этих настроек.

Внутренние особенности

  • Очередь реализована как FIFO (first in, first out): уведомления показываются в порядке добавления.
  • clearQueue() полностью очищает массив очереди, но не влияет на DOM-элементы уже отображённых уведомлений.
  • Использование метода не вызывает ошибок при пустой очереди — вызов безопасен в любом состоянии.

Пример интеграции

// Уведомления генерируются при событиях пользователя
document.getElementById('btn').addEventListener('click', () => {
    Noty.clearQueue();
    new Noty({
        text: 'Кнопка нажата',
        type: 'success',
        timeout: 2500
    }).show();
});

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

Рекомендации по использованию

  • Использовать в сочетании с Noty.closeAll(), если требуется полностью очистить интерфейс от всех уведомлений.
  • Подходит для интерактивных приложений с высокой частотой событий, где важно показывать только последние сообщения.
  • Не применять для уведомлений, которые должны отображаться все без исключения — тогда очередь нужно сохранить.

Метод Noty.clearQueue() обеспечивает строгий контроль над порядком и количеством уведомлений, позволяя поддерживать чистоту интерфейса и улучшать восприятие пользователем информации.