Та же тема: что за плюсы и минусы: положить javascript в голову и положить прямо перед телом
В прошлом у меня возникали некоторые проблемы с jquery, если при инициализации он не был 'загрузчиком', поэтому мы решили вставить его в <head>
.
В некоторых ситуациях нелегко переместить сценарии в конец. Если, например, сценарий использует document.write для вставки части содержимого страницы, его нельзя переместить ниже на странице. Также могут быть проблемы с областями видимости. Во многих случаях есть способы обойти эти ситуации.
Для остальных javascripts, все до закрывающего тега </body>
.
Чтобы объяснить, почему страница будет загружаться быстрее: это не так.
Браузеры являются однопоточными, поэтому понятно, что во время выполнения скрипта браузер не может начать другие загрузки. Но нет причин, по которым при загрузке скрипта браузер не может начать загрузку других ресурсов. Именно это и сделали новые браузеры, в том числе Internet Explorer 8, Safari 4 и Chrome 2.
Разница видна, если ваши ресурсы в теге <body>
будут загружаться / показываться последовательно. Когда браузер загружает <script src=...js>
, весь файл должен быть загружен, прежде чем браузер сможет получить другой ресурс. Так что это иллюзия, потому что браузер будет загружать / выводить больше «видимого» контента перед «javascripts».
Чтобы визуализировать все это: firebug> Net (вкладка)