Вопрос проверяет понимание старого и всё ещё актуального способа уменьшения блокировки рендеринга без специальных атрибутов.
Скрипты стоит загружать в конце body, когда они не используют defer или async. В этом случае браузер сначала строит DOM и отображает контент, а уже потом выполняет JavaScript. Это уменьшает задержку первой отрисовки и снижает риск ошибок из-за отсутствующих элементов в DOM. Такой подход особенно актуален для простых страниц и старых проектов.
Размещение скриптов — простой, но эффективный способ управления загрузкой.
Если скрипт находится в конце body, браузер:
Сначала строит почти весь DOM.
Выполняет первую отрисовку.
Только потом загружает и выполняет JavaScript.
<body>
<div id="app"></div>
<script src="app.js"></script>
</body>
В этом случае document.getElementById('app') гарантированно существует.
нет возможности использовать defer
простой сайт без сложной сборки
legacy-код или сторонние скрипты
нужно быстро решить проблему блокировки
не решает проблему порядка загрузки нескольких скриптов
не даёт гибкости, как defer
хуже масштабируется в больших приложениях
Сегодня чаще используют:
<script src="app.js" defer></script>
Это даёт тот же эффект, но чище и предсказуемее.
Вывод: загрузка скриптов в конце body — рабочий способ уменьшить блокировку рендеринга, но в современных приложениях его чаще заменяет defer.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию