jQuery: переместить JavaScript в конец страницы? - PullRequest
10 голосов
/ 24 ноября 2008

Мы разрабатываем большие приложения ASP.NET с большим количеством динамически создаваемых страниц, содержащих элементы управления ASCX. Мы везде используем jQuery.

Я читал, что имеет смысл переместить встроенный код JavaScript в конец страницы, поскольку это может задержать загрузку страницы, если она включена "слишком рано".

Мой вопрос сейчас: Имеет ли это смысл при работе с jQuery?

Большая часть кода выполняется в готовом обработчике, поэтому я ожидаю, что это не замедляет загрузку страницы. В моем случае несколько пользовательских контроллеров ASCX имеют все свои собственные jQuery биты и кусочки, и было бы нелегко переместить все это вниз на отображаемой странице.

Ответы [ 4 ]

15 голосов
/ 25 ноября 2008

Рекомендуется размещать сценарии в конце HTML, поскольку загрузка и выполнение сценариев происходит последовательно (по одному сценарию за раз) и в то же время полностью блокирует загрузку и анализ изображений и файлов CSS.

Большие / запаздывающие / медленно работающие скрипты в верхней части страницы могут вызвать ненужную задержку загрузки и рендеринга содержимого / макета страницы.

Размер скрипта (время загрузки) и сложность (время выполнения (dom-обход и т. Д.))) Учитывают, но, что более важно, количество отдельных <script> HTTP-запросов имеет гораздо большее значение (чем меньше запросов, тем лучше).

Использование обработчика «document.ready» уменьшает задержку, вызванную медленным выполнением, но все еще оставляет проблему последовательных HTTP-издержек.

Рекомендуемое чтение: Высокопроизводительные веб-сайты , автор Nate Koeckley.

10 голосов
/ 24 ноября 2008

Вы можете смоделировать различные способы упорядочения JavaScript в Cuzillion , чтобы увидеть, как это влияет на загрузку страницы.

См. примеры и этого сообщения в блоге для примеров того, как упорядочение элементов страницы может влиять на скорость.

1 голос
/ 25 ноября 2008

Если вы включите JS, загрузка страницы с этого момента будет отложена, поскольку файл JS может содержать инструкцию «document.write».

Это означает, что вся страница ОСТАНОВИТСЯ отображаться с того места, где вы включаете ваши файлы JS и заставляете браузер переходить в «белый цвет» или что-то в этом роде (по крайней мере, не отображать остальную часть страницы), поэтому короткий ответ - определенно да ...!

(более длинный ответ "вероятно" с вероятностью 99%)

Как при перемещении включение JS (а также встроенный JS - который вы не должны использовать BTW) вниз ...

Когда вам говорят, что вы находитесь на ASP.NET, вы не должны использовать jQuery, а вместо этого Ra-Ajax , который, кстати, автоматически включает в себя все эти "лучшие практики" ...

0 голосов
/ 25 ноября 2008

В большинстве случаев причина, по которой ваш JavaScript перемещается вниз, заключается в том, чтобы убедиться, что любые элементы DOM, на которые может ссылаться JavaScript, были созданы до запуска JavaScript. Это также гарантирует, что страница успеет отобразиться перед запуском любого JavaScript.

В этом случае я бы не беспокоился о перемещении JavaScript вниз по странице.

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