Термин

Event loop: почему JavaScript может задерживать интерфейс

Event loop организует выполнение задач и обработку асинхронных событий в среде JavaScript.

Что означает термин#

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

Практический пример#

Кнопка запускает большой синхронный цикл и затем обновляет подпись. Пока цикл занят, браузер может не показать промежуточный текст вовремя. Перенос такой функции внутрь setTimeout меняет момент запуска, но не уменьшает объём работы и не делает цикл дешёвым.

Как проверить#

Запишите взаимодействие в Performance и найдите длительные задачи основного потока. Сопоставьте их с задержкой реакции интерфейса. Затем сократите вычисления, разбейте работу или рассмотрите Worker. Проверяйте реальное взаимодействие повторно: объяснение через event loop не заменяет измерение времени конкретной страницы.

Источники#

Проверены 23 октября 2026 г.. Официальные рекомендации отделены от наших примеров и результатов проверки.

Применить на практике

Продолжить разбор