Noty — это легковесная библиотека для создания уведомлений в браузере
на JavaScript. Она предоставляет гибкий API для отображения всплывающих
сообщений, поддерживает различные типы уведомлений, позиции на экране,
стили и анимации. Основной объект для работы — Noty,
который создается через конструктор и принимает объект конфигурации.
Пример базового уведомления:
new Noty({
text: 'Сообщение успешно отправлено',
type: 'success',
layout: 'topRight',
timeout: 3000,
progressBar: true
}).show();
Ключевые свойства конфигурации:
alert,
success, error, warning,
info.top,
topLeft, topRight, bottom,
bottomLeft, bottomRight,
center.false делает уведомление постоянным до ручного
закрытия.Методы объекта Noty:
show() — отображает уведомление.close() — закрывает уведомление.setText(text) — изменяет текст уведомления после
создания.setType(type) — изменяет тип уведомления на лету.on(event, callback) — добавляет обработчик
события.События, на которые можно подписаться:
onShow — уведомление начинает отображаться.onClose — уведомление закрывается.onClick — уведомление было кликнуто пользователем.onHover — курсор находится над уведомлением.При работе с Noty важно контролировать производительность, особенно если уведомления создаются динамически при активной нагрузке на страницу. Основные узкие места:
Инструменты для профилирования:
Пример оптимизации:
const MAX_NOTY = 5;
let notyQueue = [];
function createNoty(message) {
if (notyQueue.length >= MAX_NOTY) {
const oldest = notyQueue.shift();
oldest.close();
}
const n = new Noty({ text: message, type: 'info', timeout: 3000 });
notyQueue.push(n);
n.show();
}
Такой подход ограничивает количество одновременно отображаемых уведомлений и предотвращает перегрузку DOM.
Для анализа поведения уведомлений используется встроенный механизм событий. Он позволяет регистрировать действия пользователя и отслеживать жизненный цикл уведомления:
const n = new Noty({ text: 'Тестовое уведомление', type: 'alert' });
n.on('onShow', () => console.log('Уведомление отображается'));
n.on('onClose', () => console.log('Уведомление закрыто'));
n.on('onClick', () => console.log('Клик по уведомлению'));
n.show();
Советы по отладке:
setText() и setType() помогает убедиться, что
уведомление обновляется корректно.const start = performance.now();
new Noty({ text: 'Замер времени', type: 'info', timeout: 2000 }).show();
const end = performance.now();
console.log(`Время создания уведомления: ${end - start}ms`);
test('Noty отображает текст', () => {
const n = new Noty({ text: 'Привет', type: 'success', timeout: false });
n.show();
expect(document.body.innerHTML).toContain('Привет');
});
timeout и progressBar для
контроля времени отображения.Эти подходы позволяют эффективно управлять уведомлениями, снижать нагрузку на интерфейс и обеспечивать предсказуемое поведение Noty в любых сценариях.