Размещение HTML script?
Время от времени я слышу о размещении тегов HTML <script>
позже в документе HTML, а не в элементе <head>
.
Некоторые люди, или я слышал, даже рекомендую разместить один скрипт как последние несколько тегов перед </body>
.
Это связано с проблемой производительности? Возможно, загрузка script является блокирующей операцией ввода-вывода, учитывая, что script -зависимые скрипты размещаются после других сценариев:
<script src="jQuery.js"></script>
<script src="myScriptThatUsesjQuery.js"></script>
Даже если это так, почему нужно было разместить один скрипт в конце документа HTML?
Спасибо!
Ответы
Ответ 1
Когда в <body>
появляются теги <script>
, он приостанавливает разбор документа до его загрузки (если применимо) и выполняется. Это так, что старые скрипты, которые используют document.write
, могут выполнять свою задачу.
Размещение тегов <script>
последнего в теле удерживает их от необходимости.
Ответ 2
Ну, <script>
должен быть включен до </body>
, и, как вы говорите, <script src="jQuery.js"></script>
должен быть включен перед <script src="myScriptThatUsesjQuery.js"></script>
, поскольку jQuery.js загружает все функции, которые используются myScriptThatUsesjQuery.js, поэтому вы не можете использовать функцию (например, $()
) до ее объявления.
Ответ 3
Наличие большого количества файлов script в вашем заголовке замедляет производительность сайта, поскольку спецификация HTTP рекомендует браузерам не загружать более двух файлов с любого хоста параллельно. Поэтому, если у вас есть полдюжины или около того .js файлы, загружаемые из вашей папки script, загрузка других ресурсов на вашем сайте (images/css и т.д.) Будет заблокирована, пока браузер перейдет через список 2x2, В основном это создает узкое место.
Я думаю, что у некоторых современных браузеров есть обходные пути для этой проблемы, но пока мир не откажется от IE6/7, вероятно, лучше ошибиться в сторону оптимизации.