Вы только написали красивый скрипт и хотите, чтобы он работал на сайте. Где его разместить, чтобы всё грузилось быстро и без ошибок? Давайте разберёмся, какие варианты есть и когда каждый из них подходит.
Самый привычный способ – вставить <script src="file.js"></script>
в раздел <head>
. Браузер загружает файл сразу, но останавливает построение DOM, пока скрипт не выполнится. Если ваш скрипт меняет разметку, такой порядок иногда нужен.
Чаще советуют ставить теги скриптов перед закрывающим </body>
. Тогда браузер сначала построит весь HTML, пользователь уже увидит страницу, а скрипт загрузится уже после отображения контента. Это повышает ощущение скорости и сокращает время до первого отрисованного кадра.
Атрибут async
заставит браузер скачать скрипт в фоне и выполнить его сразу после загрузки, независимо от порядка в документе. Подходит для небольших аналитических файлов, рекламных или виджетов, которые не зависят от остальных скриптов.
Атрибут defer
тоже скачивает файл в фоне, но откладывает его выполнение до тех пор, пока весь DOM не будет готов. Это идеальный вариант для основных библиотек (jQuery, Vue, React) – они загрузятся быстро, но выполнятся только после полной разметки.
Запомните простое правило: если скрипт нужен для построения страницы, ставьте его в head без async/defer. Если скрипт только добавляет интерактивность, используйте defer или разместите его в конце body.
Есть ещё вариант – инлайн‑скрипты внутри HTML. Их удобно применять для небольших фрагментов кода, например, установки переменной конфигурации, но большие скрипты лучше держать в отдельных файлах – так проще кешировать и обслуживать.
Не забывайте о модулях. Добавив атрибут type="module"
, вы получаете поддержку import
и export
прямо в браузере. Модули всегда работают в строгом режиме и автоматически получают defer‑поведение, поэтому их можно помещать в head без лишних атрибутов.
Итоговый чек‑лист:
defer
или помещайте их перед .
async
.type="module"
, они уже отложены автоматически.Следуя этим рекомендациям, вы ускорите загрузку страниц, снизите количество ошибок и сделаете ваш сайт более приятным для посетителей. Теперь вы знаете, где правильно подключать JS – экспериментируйте, проверяйте скорость в инструментах браузера и выбирайте оптимальный вариант под свои задачи.