Каковы за и против включения JavaScript прямо перед </голова> тег по сравнению с </тело> тег?

Править: В то время как этот вопрос задали и ответили прежде (1), (2), (3), ответы не упомянули возможность использования асинхронного и / или ленивая загрузка когда включая файлы в . Мне предложили задать вопрос из-за аналитики Google новый код, который использует оба из этих методов.


Я недавно заметил, что аналитика Google теперь предлагает включая ее отрывок JavaScript прямо перед тег. Они раньше предлагали включая отрывок прямо перед тег.

Лучшие практики YUI для Ускорения Вашего веб-сайта предлагают поместить сценарии максимально далеко ниже на страницу, так как сценарии могут заблокировать параллельные загрузки:

Проблема, вызванная сценариями, состоит в том, что они блокируют параллельные загрузки. Спецификация HTTP/1.1 предлагает, чтобы браузеры загрузили не больше, чем два компонента параллельно на имя хоста. При обслуживании изображений от нескольких имен хостов можно заставить больше чем две загрузки происходить параллельно. В то время как сценарий загружает, однако, браузер не запустит никакие другие загрузки, даже на различных именах хостов.

Google говорит:

Одно из основных преимуществ асинхронного отрывка - то, что можно расположить его наверху документа HTML. Это увеличивает вероятность, что маяк отслеживания будет отправлен, прежде чем пользователь оставляет страницу. Это обычно для размещения кода JavaScript в раздел, и мы рекомендуем поместить отрывок у основания раздел для лучшей производительности.

Я обычно более обеспокоен пользовательским опытом и скоростью под нагрузкой страницы, чем проверка, что каждый маяк отслеживания отправляется, таким образом, это продвинуло бы меня к включению сценария аналитики Google к концу страницы, вместо в , право?

Я уверен, что существует больше вещей рассмотреть, чем эти две точки зрения. Что вещи влияют на Вас? Что состоят в том, чтобы рассмотреть вещи?

Так, что является за и против имения Вашего права сценариев berfore по сравнению с прямо прежде ?

7
задан Community 23 May 2017 в 10:32
поделиться

3 ответа

Совет относительно - не СВЯЗАТЬСЯ НА ВНЕШНИЕ скрипты, которые необходимо загрузить. Это блокирует параллельные загрузки. Новейший код отслеживания Google использует отложенную загрузку и не блокирует параллельные загрузки.

(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
7
ответ дан 6 December 2019 в 21:08
поделиться

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

Используя самоисполняющуюся анонимную функцию с async = true , вы не блокируете параллельную загрузку.

Для действительно сложных приложений с модальными окнами недостаток размещения скрипта прямо перед будет, если вам нужно скрыть модальное окно, если JS включен.

<head>
<script>document.documentElement.className+='js';</script>
<style>html.js #modal { display:none; }</style>
</head>

Если приведенный выше фрагмент был размещен перед , он не будет проанализирован сразу же, как если бы он был в заголовке. Могут быть определенные случаи и несоответствия с точки зрения времени готовности dom, которые вы также можете заметить.

Связанный вопрос: Где я должен декларировать файлы JavaScript, используемые на моей странице? В или рядом ?

2
ответ дан 6 December 2019 в 21:08
поделиться

Я предполагаю, в дополнение к тому, что до сих пор говорили другие люди, чтобы аналитика могла более точно отслеживать посещения. Иногда кто-то заходит на сайт и уходит до того, как загрузится вся страница. Если они это сделают, вероятность того, что они загрузили код отслеживания, выше, если он находится ближе к верху страницы. Это должно помочь тем, кто анализирует статистику, увидеть показатель отказов. Если вы заметили, что у вас высокий показатель отказов (а время на странице мало), это может указывать на то, что ваша страница занимает слишком много времени для большинства аудиторий, и должно предупредить вас о том, что нужно сделать что-то, чтобы ускорить загрузку вашей страницы.

3
ответ дан 6 December 2019 в 21:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: