Насколько плохо размещать javascript за пределами заголовка?

Вопрос в значительной степени уже все говорит.

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

Но дело в следующем: я делаю это на php и структурирую все с помощью include, чтобы я мог разделить код. Некоторые из этих фрагментов кода зависят от фрагментов кода javascript, поэтому насколько плохо помещать javascript в середину тела? Или мне просто нужно сделать двойное включение, чтобы javascript оставался в заголовке?

Ответов (3)

Решение

Это совсем не плохо.

На самом деле считается хорошей практикой размещать теги сценария как можно позже на странице .

Для этого есть хорошие и плохие причины.

ХОРОШО) Если сценарий не критичен для построения DOM вашей страницы, лучше сделать это как можно позже, как предлагает Джим Пулс, обычно в самом низу страницы в корневом узле BODY. Это хорошо, потому что позволяет XHTML отрисовывать немедленно, создавая психологический эффект, заключающийся в том, что страница «загружается быстрее». На самом деле он загружается с той же скоростью, за исключением того, что браузер не тратит циклы процессора на загрузку, интерпретацию и запуск JS, пока пользователь смотрит в белое окно браузера.

ПЛОХО) Теги скрипта обычно загружаются интерпретируемыми в том порядке, в котором они заключены. Это означает, что вам нужно тщательно управлять порядком, в котором они включены. Кроме того, поскольку они загружаются последовательно (по одному), вы платите высокую стоимость за каждый дополнительный файл, на который вы ссылаетесь, потому что браузеру необходимо установить соединение, проверить кеш, загрузить и т. Д. Такие приемы, как IE "DEFFER", не являются стандартными. По этой причине я настоятельно рекомендую упаковать ваш javascript в один файл при переходе от разработки к производству, чтобы пользователям не приходилось устанавливать несколько последовательных подключений. Также убедитесь, что у вас включено сжатие gzip.

ХОРОШО) Есть способ отложенной загрузки скриптов с использованием AJAX - вы вызываете свой сервер, запрашивая JS, и вызываете событие при загрузке файла. Затем вы можете вызвать для него eval (или какой-либо более безопасный вариант), который вводит его символы в область видимости. Это позволяет параллельную загрузку скрипта.

ХОРОШО И ПЛОХО) В IE вы должны избегать манипулирования деревом DOM до полной загрузки DOM. Найдите для этого событие 'dom: loaded'.

Размещение Javascript в теле - это совершенно нормально. Есть даже такое понятие, как «встроенный» Javascript. Только не переусердствуйте. Если вы можете упаковать свои скрипты в отдельный файл (что не всегда возможно), это сделает ваш код более удобным в сопровождении.