Вы открыли новый проект и хотите улучшить его интерактивность? Честно, без JavaScript сейчас почти ни один сайт не живёт. Давайте разберём, куда вставлять скрипт, какие атрибуты использовать и как избежать типичных ошибок.
Самый простой способ – поместить <script>
внизу <body>
. Так браузер сначала загрузит разметку, а потом выполнит код, и страница не будет «зависать». Если скрипт нужен сразу, используйте атрибут defer
в <head>
– он откладывает выполнение до полной загрузки DOM.
Пример базовой вставки:
<head>
<script src="/js/main.js" defer></script>
</head>
<body>
...контент...
</body>
Для небольших кусочков кода, которые не стоят отдельного файла, можно писать непосредственно внутри тега:
<script>
console.log('Привет, мир!');
</script>
Самая частая ошибка – разместить скрипт в <head>
без async
или defer
. Браузер будет ждать загрузки и выполнения скрипта, а пользователь увидит пустой экран. Второй баг – забыть закрыть тег <script>
, что ломает разметку.
Если вы подключаете сторонний сервис (анализ, чат, рекламные коды), ставьте их в конец <body>
и добавляйте async
. Он позволяет загрузить файл параллельно с остальными ресурсами и выполнить его сразу после загрузки.
Не забывайте про порядок. Если один скрипт зависит от другого, размещайте их в нужной последовательности или используйте модульный загрузчик (например, RequireJS или ES‑модули).
Для CMS (WordPress, Joomla) лучше пользоваться встроенными механизмами. В WordPress подключайте скрипты через wp_enqueue_script
– так вы избежите конфликтов и сможете легко отключать их в темах.
Проверяйте консоль разработчика. Любая ошибка в JavaScript будет видна там, и её быстро исправить. Если видите «Uncaught ReferenceError», значит вы вызываете функцию до её объявления.
И наконец, кеширование. При изменении скрипта добавляйте параметр версии в URL, например /js/main.js?v=2
. Это заставит браузер взять свежую копию вместо старой из кэша.
Подытожим: ставьте скрипты внизу страницы, используйте defer
или async
, следите за порядком загрузки и проверяйте ошибки. Так ваш сайт будет быстрее, а вы меньше нервничать будете.