Ответ 1
Я бы ответил на это несколькими вариантами на самом деле, некоторые из которых фактически отображают в теле.
- Поместите библиотеку script, такую как библиотека jQuery в разделе главы.
- Поместите обычный script в голову, если это не проблема с загрузкой/загрузкой страницы.
- Место script, связанное с включенными, в пределах и в конце этого include. Одним из примеров этого является пользовательский контроль .ascx на страницах asp.net - поместите script в конце этой разметки.
- Поместите script, который влияет на рендеринг страницы в конце тела (до закрытия тела).
- НЕ помещайте script в разметку, такую как
<input onclick="myfunction()"/>
- лучше разместить ее в обработчиках событий в вашем теле script. - Если вы не можете решить, поместите его в голову до тех пор, пока у вас не возникнет причина не касаться проблем с блокировкой страницы.
Сноска: "Когда вам это нужно, а не раньше" применяется к последнему элементу при блокировке страницы (скорость перцептивной загрузки) - восприятие пользователями - это реальность, если она быстрее загружается, она загружается быстрее (хотя все еще может происходить в коде).
EDIT: ссылки:
- Обсуждение asp.net: http://west-wind.com/weblog/posts/154797.aspx и здесь: http://msdn.microsoft.com/en-us/library/3hc29e2a.aspx
- обсуждение jQuery документа: http://encosia.com/2010/08/18/dont-let-jquerys-document-ready-slow-you-down/?utm_source=feedburner&utm_medium=email&utm_campaign=Feed%3A+Encosia+%28Encosia%29
- другие ответы по этому вопросу также содержат достоверную информацию.
- используйте www.google.com и www.bing.com для поиска соответствующей информации (есть много ссылок).
Боковое примечание: Если вы поместите блоки script в разметку, это может повлиять на макет в некоторых браузерах, заняв место (например, 7 и опера 9.2, как известно, имеют эту проблему), поэтому поместите их в скрытый div (используйте css класс: .hide { display: none; visibility: hidden; }
на div)
Стандарты: обратите внимание, что стандарты позволяют размещать блоки script практически в любом месте, если это под вопросом: http://www.w3.org/TR/1999/REC-html401-19991224/sgml/dtd.html и http://www.w3.org/TR/xhtml11/xhtml11_dtd.html
EDIT2: Обратите внимание, что, когда это возможно (всегда?), вы должны поместить фактический Javascript во внешние файлы и ссылаться на них - это не изменяет правильность последовательности.