Где разместить функции JavaScript: <head>? <Тело>? или, после</html>?

Я смущен тем, где разместить функции JavaScript:

Когда их следует положить в голову Когда встроенный в тело И, когда после закрытия html-тега?

спасибо

3 ответа

Правила бывают быстрыми и свободными на этом, нет правильного или неправильного пути только лучше и менее-лучше. (хорошо после ошибки )

Вообще говоря, javascript в head документа может блокировать показ страницы до тех пор, пока файл не будет загружен в некоторые браузеры * cough * IE * cough *. Это связано с ограничением одновременных соединений. Поэтому некоторые люди помещают перед тегом html. Вы можете использовать библиотеку для асинхронной загрузки javascript, чтобы избежать этой блокировки.

Если вы используете библиотеку или проверяете загрузку DOM перед выполнением кода, на самом деле нет проблемы с размещением. Однако, если вы этого не делаете, лучше положить его в конец.


Я согласен, никогда не видел (и не мог рекомендовать) после html. Кроме того, как отмечалось, блокировка вызывает озабоченность. Я часто использую ссылку script в голове ******* (загрузчик async js и бит тестирования tid (теперь включен в modernizr)) и крошечный блок встроенных js в конце тега body, который загружает загрузочный js файл.

В этом файле я использую другой запрос ******* для асинхронного загрузки других необходимых ресурсов и запуска инициализации.

Я также взял код моего Google Analytics в финальный блок *******, так что это последнее, что нужно загрузить, даже после загрузки js-приложения.


Javascript всегда можно безопасно разместить в голове, чтобы сделать функциональность доступной для всей страницы. Обратите внимание, что это может блокировать загрузку остальной части документа, поэтому, если вы загружаете очень большой или внешний Javascript, вы можете загрузить их внутри линии ближе к концу тела.

Javascript, размещенный в строке, станет доступен при его исполнении. Это позволяет условно загружать JS при загрузке элементов страницы.

Javascript всегда следует размещать в или , никогда не после .

licensed under cc by-sa 3.0 with attribution.