> Всегда ли JavaScript выполняется после события onload (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Garage Eight
Стек: JavaScript
> Пример ответа
Нет, не всегда. Событие onload срабатывает, когда страница полностью загружена, включая все ресурсы (изображения, стили, скрипты). Однако JavaScript может выполняться как до, так и после этого события в зависимости от расположения скрипта и его атрибутов.
- Скрипты без атрибутов (обычные
<script>в<head>или в начале<body>) выполняются синхронно, блокируя парсинг HTML, и завершаются задолго доonload. - Скрипты с атрибутом
asyncзагружаются асинхронно и выполняются сразу после загрузки, не дожидаясьonload. - Скрипты с атрибутом
deferвыполняются после полного парсинга HTML, но до событияDOMContentLoaded, которое наступает раньшеonload. - Скрипты, размещённые в конце
<body>(перед закрывающим тегом), выполняются после парсинга DOM, но до загрузки тяжёлых ресурсов, то есть доonload.
Таким образом, JavaScript может выполняться в любой момент жизненного цикла страницы. Чтобы гарантировать выполнение кода после полной загрузки, нужно явно подписываться на событие window.onload или использовать DOMContentLoaded (если не нужны ресурсы).
> Похожие задачи по frontend
Как отследить момент запуска и завершения обычной функции в JavaScript
Что такое SPA приложение
Как сделать попап без JavaScript и возможно ли это
Что происходит при встрече промиса во время выполнения синхронного кода в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью