Насколько плохо размещать JavaScript вне заголовка? - PullRequest
10 голосов
/ 25 февраля 2009

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

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

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

Ответы [ 3 ]

24 голосов
2 голосов
/ 25 февраля 2009

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

1 голос
/ 25 февраля 2009

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

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

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

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

GOOD & BAD) В IE вы должны избегать манипулирования деревом DOM до полной загрузки DOM. Посмотрите на событие 'dom: загружен' для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...