JavaScript Файл включение. Не должен ли мне ссылаться в ?

StackOverflow https://stackoverflow.com/questions/4442469

Вопрос

Я смотрю Дуглас Крокфордс "Теория DOM«И он упомянул, что местоположение моих тегов сценария может сильно повлиять на время загрузки моих приложений. Кроме того, он утверждает, что тег сценария должен быть включен как можно дальше в сторону нижней части тела документа.

Это точное?

ИЛИ

Это видео устарело? (Что он на самом деле находится в качестве причины, по которой он не читал лекции о Доме раньше).

Это было полезно?

Решение

Google соглашается с Крокфордом:

Yahoo! также:

И другие, поэтому пользователи также согласны:

Другие советы

Файлы, включенные в заголовок, загружаются до того, как остальная часть страницы даже начнет загрузку. Рекомендуется загружать несущественные файлы как можно ближе к нижней части страницы, чтобы остальная часть страницы можно было загрузить заранее.

Есть некоторые библиотеки JS (например, LABJS), которые вы можете загрузить в заголовке. Затем они позволяют вам загружать все другие ваши активы JS асинхронно и предоставлять обратный вызов, чтобы остальная часть вашего кода могла выполняться, когда вы знаете, что ваши активы JS были загружены.

Вы также можете использовать http://labjs.com/ .

Как указано на странице проекта:

LabJS (загрузка и блокировка JavaScript)-это проект с открытым исходным кодом (MIT License), поддерживаемый Getify Solutions. Основной целью LABJ является универсальный загрузчик JavaScript по требованию, способный загружать любой ресурс JavaScript из любого места, на любую страницу, в любое время. Загрузка ваших сценариев с помощью LABJS уменьшает блокировку ресурсов во время нагрузки на страницу, что является простым и эффективным способом оптимизации производительности вашего сайта.

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

Использование LABJ заменит весь этот уродливый «суп с меткой» - это все теги, которые обычно появляются в или конце вашей HTML -страницы. API является выразительным и цепоченным, чтобы позволить вам указать, какие сценарии загружать и когда ждать («Блок»), если это необходимо, для выполнения, прежде чем продолжить дальнейшее выполнение. API также легко допускает встроенное сочетание выполнения кода (подумайте: встроенные теги).

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

Я тоже слышал, что JavaScript должен быть включен в конце страницы, чтобы «надеюсь» убедиться, что DOM загрузился. Я считаю, что я прочитал это в документации Yahoo некоторое время назад.

Ну, это правильно. Если вы не используете что -то вроде «Head.js», которое загружает вам файлы JavaScript параллельно. О, и некоторые сценарии должны быть перед содержанием. Например, сценарий HTML5-SHIV.

http://headjs.com/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top