Является ли $(document) уже необходимым, если я поместил весь свой JavaScript в нижней части страницы? - программирование

Является ли $(document) уже необходимым, если я поместил весь свой JavaScript в нижней части страницы?

Возможный дубликат:
jquery - Необходим ли $(документ)?

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

Но это имеет другое преимущество, не так ли? Нам не нужно обертывать JS в $(document).ready(function() { ... }), потому что все элементы уже выше JS и поэтому готовы к манипуляции.

  • Требуется ли $(document).ready, чтобы DOM полностью загрузился и готов к манипуляции?

  • Есть ли разница между временем выполнения? Будет ли один метод работать быстрее, чем другой?

  • Не могли бы мы связать наши внешние JS файлы (<script src="..." />) внизу страницы или это должно быть в заголовке?

4b9b3361

Ответ 1

В этом ответе SO говорится: НЕТ:

вопрос stackoveflow

$(document).ready для обеспечения полной DOM доступен в момент вызова функции. Любые функции и события, не зависящие от DOM, не нужно помещать в готовое событие.

Также - для улучшения скорости рендеринга страницы - загружайте файлы javascript динамически без блокировки: http://berklee.github.com/nbl/ или https://github.com/rgrove/lazyload/

Эта техника работает примерно так:

 var script = document.createElement("script");
 script.type = "text/javascript";
 script.src = "file1.js";
 document.getElementsByTagName("head")[0].appendChild(script);

Этот новый элемент загружает исходный файл file1.js. Файл начинает загрузку, как только элемент добавляется на страницу. Важная вещь в этом методе заключается в том, что файл загружается и выполняется без блокировки других процессов страниц, независимо от того, где начата загрузка. Вы даже можете поместить этот код в заголовок документа, не затрагивая остальную часть страницы (кроме одного HTTP-соединения, которое используется для загрузки файла).

в этой книге: "Высокопроизводительный JavaScript" Николаса Закаса содержит массу интересной информации об оптимизации исполнения JavaScript.