Помогает ли скорость загрузки страницы размещать скрипт за телом? - PullRequest
0 голосов
/ 27 марта 2012

Я читал, что плохая практика, но обычно безвредная , размещать большую часть страницы <script> после <body>. Поскольку последствия кажутся незначительными, мне интересно, есть ли у меня веская причина попробовать это: скорость загрузки страницы.

Мой вопрос таков: будет ли javascript перед телом выполняться быстрее, если остальная часть javascript будет следовать за телом? Или, если выразиться по-другому: подделан ли ниже поддельный документ быстрее, чем если бы я поместил весь скрипт в голову?

<html>
    <head>
         <script src="urgent-stuff.js"/>
    </head>
    <body>
         <p>Lots of great content</p>
    </body>
    <script src="not-so-urgent-stuff.js">
</html>

Примечание. Я использую jQueryMobile для своего сайта (= мобильное приложение). Эта структура помещает весь сайт в один документ и копирует базовый HTML каждой страницы со стилем и взаимодействием, основанными главным образом на атрибутах элемента «data-», перед тем, как эта страница будет показана. Javascript jQM, очевидно, является частью неотложного материала, который входит в . У jQueryMobile есть свое собственное событие для начала работы, называемое «pageinit», которое, по его словам, срабатывает задолго до того, как обычный «документ готов» в обычном jQuery.

Ответы [ 2 ]

4 голосов
/ 27 марта 2012

Сам документ не будет загружаться «быстрее» до тех пор, пока не сработает DomReady, но документ и ресурсы будут загружаться раньше вашего not-so-urgent-stuff.js, что делает его загружаемым быстрее и делает контент доступным сразу.

Самый быстрый способ загрузки контента в браузер - не блокировать браузер последовательными загрузками скриптов - каждый раз, когда вы вызываете скрипты из тега <script>, браузер должен извлечь ресурс и выполнить его последовательно с любым другим контентом..

Вы можете визуализировать это с помощью ряда инструментов, таких как Yslow.Сам Yslow предоставляет отличный ресурс о том, как оптимизировать размещение вашего контента в ваших документах.

http://developer.yahoo.com/yslow/

http://developer.yahoo.com/performance/rules.html

Редактировать :

Это также было покрыто довольно благоприятным ответом в этом связанном потоке стека Ненавязчивый JavaScript: вверху или внизу HTML-кода?

0 голосов
/ 27 марта 2012

Правило производительности - откладывать загрузку как можно большего числа js.

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

Даже в современном браузере синтаксический анализ и выполнение js прекратят рендеринг.

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

@ souders много писал на эту тему.

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