Скажем, у меня довольно здоровенный файл JavaScript, упакованный примерно до 100 КБ или около того. Под файлом я подразумеваю, что это внешний файл, который будет связан через <script src="...">
, а не вставлен в сам HTML.
Где лучшее место, чтобы поместить это в HTML?
<html>
<head>
<!-- here? -->
<link rel="stylesheet" href="stylez.css" type="text/css" />
<!-- here? -->
</head>
<body>
<!-- here? -->
<p>All the page content ...</p>
<!-- or here? -->
</body>
</html>
Будет ли какая-либо функциональная разница между каждым из вариантов?
javascript
html
optimization
nickf
источник
источник
Ответы:
Yahoo! Команда Exceptional Performance рекомендует размещать скрипты внизу страницы из-за того, как браузеры загружают компоненты.
Конечно, комментарий Леви «как раз перед тем, как он вам понадобится, и не раньше», действительно является правильным ответом, то есть «это зависит».
источник
$(function () {...})
в нижней части страницы или он должен быть внутри<head>
?</body>
?Лучшее место для этого - как раз перед тем, как оно понадобится, и не раньше.
Кроме того, в зависимости от физического местоположения ваших пользователей, использование сервиса, такого как сервис Amazon S3, может помочь пользователям загрузить его с сервера, который физически ближе к ним, чем ваш сервер.
Является ли ваш js-скрипт широко используемой библиотекой вроде jQuery или прототипа? Если так, то есть ряд компаний, таких как Google и Yahoo, которые имеют инструменты для предоставления этих файлов для вас в распределенной сети.
источник
Как правило, лучшее место для размещения
<script>
тегов - это нижняя часть страницы, непосредственно перед</body>
тегом. Что-то вроде этого:Зачем?
CSS
Немного не по теме, но ... Положите таблицы стилей вверху.
дальнейшее чтение
Yahoo выпустила действительно классное руководство, в котором перечислены лучшие практики для ускорения работы сайта. Определенно стоит прочитать: https://developer.yahoo.com/performance/rules.html
источник
С 100k Javascript, вы никогда не должны помещать его в файл. Используйте внешний скрипт Javascript file. В аду нет шансов, что вы когда-нибудь будете использовать этот объем кода только на одной HTML-странице. Скорее всего, вы спрашиваете, где вы должны загрузить файл Javascript, для этого вы уже получили удовлетворительные ответы.
Но я хотел бы отметить, что современные браузеры обычно принимают файлы gzip ped Javascript! Просто распакуйте
x.js
файлx.js.gz
и укажите на это вsrc
атрибуте. Он не работает в локальной файловой системе, вам нужен веб-сервер, чтобы он работал. Но экономия в переданных байтах может быть огромной.Я успешно протестировал его в Firefox 3, MSIE 7, Opera 9 и Google Chrome. По-видимому, это не работает в Safari 3.
Для получения дополнительной информации см. Этот пост в блоге и другую очень древнюю страницу, которая, тем не менее, полезна, поскольку указывает на то, что веб-сервер может определить, может ли браузер принимать сжатый Javascript или нет. Если ваша серверная сторона может динамически выбирать отправку gzipped или простого текста, вы можете сделать страницу пригодной для использования во всех веб-браузерах.
источник
Помещение javascript вверху показалось бы аккуратнее, но функционально лучше следовать HTML. Таким образом, ваш javascript не будет работать и пытаться ссылаться на элементы HTML до их загрузки. Подобные проблемы часто становятся очевидными, когда вы загружаете страницу через реальное интернет-соединение, особенно медленное.
Вы также можете попытаться динамически загрузить javascript, добавив элемент заголовка из другого кода javascript, хотя это имеет смысл, только если вы не используете весь код все время.
источник
Используя cuzillion, вы можете проверить влияние на загрузку страницы различного размещения тегов скрипта, используя различные методы: встроенный, внешний, «теги HTML», «document.write», «элемент JS DOM», «iframe» и «XHR eval». , Смотрите справку для объяснения различий. Он также может тестировать таблицы стилей, изображения и фреймы.
источник
Ответ зависит от того, как вы используете объекты JavaScript. Как уже указывалось, загрузка файлов javascript в нижний колонтитул, а не в верхний колонтитул, безусловно, повышает производительность, но следует позаботиться о том, чтобы используемые объекты инициализировались позже, чем они загружались в нижний колонтитул. Еще один способ - загрузить файлы 'js', помещенные в папку, которая будет доступна для всех файлов.
источник
Как уже говорили другие, он, скорее всего, должен идти во внешнем файле. Я предпочитаю включать такие файлы в конце <head />. Этот метод более дружественный человеку, чем машинному, но так я всегда знаю, где находится JS. Просто не так легко читать файлы сценариев где-либо еще (imho).
Если вам действительно нужно выжать каждую последнюю мс, тогда вы, вероятно, должны делать то, что говорит Yahoo.
источник
Сценарии должны быть включены в конец тега body, потому что таким образом HTML будет анализироваться браузером и отображаться до загрузки сценариев.
источник
Ответ на вопрос зависит. В этой ситуации есть 2 сценария, и вам нужно будет сделать выбор на основе вашего соответствующего сценария.
Сценарий 1 - Критический сценарий / Необходим сценарий
В случае скрипт вы используете очень важно , чтобы загрузить веб - сайт, рекомендуется размещать в верхней части HTML - документа , т.е.,
<head>
. Вот некоторые примеры: код приложения, начальная загрузка, шрифты и т. Д.Сценарий 2 - Менее важные / аналитические скрипты
Также используются скрипты, которые не влияют на вид сайта. Такие сценарии рекомендуется загружать после загрузки всех важных сегментов. И ответом будет нижняя часть документа, т. Е. Нижняя часть вашего документа
<body>
перед закрывающим тегом. Вот некоторые примеры: Google Analytics, Hotjar и т. Д.Бонус - асинхронный / отсроченный
Вы также можете сказать браузерам, что загрузка скрипта может быть выполнена одновременно с другими и может быть загружена на основе выбора браузера, используя аргумент defer / async в коде скрипта.
например.
<script async src="script.js"></script>
источник
Ваши ссылки javascript могут попадать либо в заголовок, либо в конец тега body. Это правда, что производительность улучшается, если поместить ссылку в конец тега body, но если производительность не является проблемой, размещение их в заголовке приятнее для людей, чтобы читать, и вы знаете, где находятся ссылки и могут ссылаться на них проще.
источник
Я бы сказал, что это зависит от того, чего вы планируете достичь с помощью кода Javascript:
источник
document.write
, чего, вероятно, не должно быть.