где правильно подключать js-файл сверху или снизу

PHProgress

Новичок
Добрый день.

Идет жуткий спор и однозначного ответа не могу найти в интернете по данной теме.
Все css-стили собираю в 1 файл (объединяю, компрессую, и т.д. - оптимизирую).
Все js-скрипты собираю в 1-3 файла (объединяю что можно).
Раньше, да и сейчас подключал все это дело в head (вверх документа).
Старт скриптов произвожу (jquery) через document.ready

И с недавних пор меня стали убеждать, что это не правильно...
А правильно подключать js-файлы со скриптами в конце документа...
Мол документ построен - и это верно...
document.ready - видите ли им не нравиться...
Не ужели это правда...

Ведь по идее страница же грузиться сверху вниз и по логике должно быть...
Загружетются css-файлы.
Загружаются js-скрипты.
Строится документ (отрисовка браузером).
После jQuery - срабатывает событие document.ready - и все работает прекрасно...

Так на кой и зачем тогда подключать js-файлы не в шапке, а в конце документа (после footer)???

-=-
Спасибо.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
иногда браузеры лочат отрисовку страницы до конца подгрузки и отрабатывания всех js из шапки потому что скрипты могут перерисовать страницу,
это происходит не всегда и не во всех браузерах, не вникал в детали,
часто js-либы кешируются и не подгружаются при повторном заходе, если правильно настроить, но в общем и целом может как-то повлиять на ощущение пользователя.
во время разработки я забиваю, преждевременная оптимизация - зло
 

ksnk

прохожий
Разные бывают поросята. При активном использовании JS элементов на странице можно получить и неприятный эффект. Если разместить JS внизу html, то отобразится информация в броузере раньше, чем при "нормальном" подключении в head из за того, что сначала все JS файлы грузятся полностью. Так что при больших JS файлах у пользователя будет больше времени, чтобы потыкать в "активные" элементы, удивится, что они не шевелятся, презрительно хмыкнуть и уйти с сайта. При нормальной загрузке время от демонстрации до "активации" js-элементов меньше и сайт работает так как оно и задумано.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
не ну вопрос подразумевает, что разницы нет, и скрипты не несут значительной функциональной нагрузки
 

ksnk

прохожий
не ну вопрос подразумевает, что разницы нет, и скрипты не несут значительной функциональной нагрузки
Точно? Какое место первого сообщения я понял неправильно? ;)

Это я про то, что универсального решения не бывает, нужно понимать минусы и плюсы каждого варианта.
 
Сверху