Ответ 1
Очень мало само по себе, в любом случае DOM будет готов для вас работать (я нервничал по этому поводу, пока не прочитал это из Google). Если вы используете трюк конца страницы, ваш код может называться малейшим, малейшим чуть раньше, но ничего не имеет значения. Но что более важно, этот выбор относится к тому, где вы привязываете свой JavaScript к странице.
Если вы включаете тэг script
в head
и полагаетесь на ready
, браузер встречает тэг script
, прежде чем он отобразит что-либо пользователю. В обычном ходе событий браузер доходит до паузы и идет и загружает ваш script, запускает интерпретатор JavaScript и передает ему script, а затем ждет, пока интерпретатор обрабатывает script (и то jQuery смотрит по-разному, чтобы DOM был готов). (Я говорю "в обычном ходу вещей", потому что некоторые браузеры поддерживают атрибуты async
или defer
в тегах script
).
Если вы включаете тэг script
в конце элемента body
, браузер не выполняет все это, пока ваша страница в основном не будет отображаться для пользователя. Это улучшает воспринимаемое время загрузки для вашей страницы.
Чтобы получить наилучшее воспринимаемое время загрузки, поместите ваш script в нижней части страницы. (Это также руководство от людей Yahoo.) И если вы собираетесь это сделать, тогда нет необходимости использовать ready
, хотя, конечно, вы могли бы, если хотите.
Там есть цена за это: вы должны быть уверены, что вещи, которые пользователь видит, готовы к взаимодействию. Перемещая время загрузки до того, как страница будет отображаться в основном, вы увеличите вероятность того, что пользователь начнет взаимодействовать со страницей перед загрузкой script. Это один из контр-аргументов для размещения тега script
в конце. Часто это не проблема, но вы должны посмотреть на свою страницу, чтобы узнать, есть ли это, и если да, как вы хотите с ней справиться. (Вы можете поместить небольшой элемент inline script
в head
, который настраивает обработчик событий в документе, чтобы справиться с этим. Таким образом, вы получаете улучшенное время загрузки, но , если они пытаются чтобы сделать что-то слишком рано, вы можете либо сказать им, что, или, лучше, поставить очередь на то, что они хотели сделать, и сделать это, когда ваш полный script готов.)