Подтвердить что ты не робот

Можно ли разместить код javascript в любом месте HTML-кода?

Я вижу, что Javascript-код обычно находится в заголовке HTML-кода.

<head>
<script type="text/javascript" language="javascript" src="core.js"></script>
...
</head>

Можно ли разместить код Javascript в части тела HTML-кода? Я тестировал его, но, похоже, он работает.

<body>
<script type="text/javascript" language="javascript" src="core.js"></script>
...
</body>

Если да, то почему примеры Javascript-книг помещают javascript-код в заголовок? Если нет, то какая разница между помещением javascript-кода в часть body/heading?

4b9b3361

Ответ 1

Не только это нормально, он действительно лучше, поскольку он позволяет первому содержимому.

Если у ваших зрителей медленное (например, мобильное) соединение, лучше сначала отправить фактическое содержимое, чтобы они могли его прочитать, пока браузер загружает Javascript.

Ответ 2

Все люди, говорящие, что это лучше, применимы только в том случае, если вы говорите в нижней части страницы (и это вопрос для обсуждения) с точки зрения качества кода, НЕ ОЧЕНЬ окропить script теги через ваш html. Все ссылки на javascript должны находиться в одном месте на странице, либо в голове (где они должны быть), либо в самом низу (в качестве оптимизации)

Edit:

В принципе, веб-страница состоит из 3 штук; стиль (css), структура (html) и поведение (javascript). Эти части очень разные, поэтому имеет смысл держать их как можно более раздельными. Таким образом, если вам нужно изменить какой-либо javascript, все это в одном месте. Если он посыпается через файл, становится намного сложнее найти код, который вы ищете, и этот код в основном становится шумом, когда вы просто смотрите на структуру.

Это те же аргументы, что и почему бы не посыпать код доступа db по всей вашей странице. Это не имеет ничего общего с техническими причинами, чисто архитектурным/дизайнерским решением. Код, который делает разные вещи, должен быть раздельным для удобочитаемости, ремонтопригодности и расширения, рефакторизуемости (не уверен, что последнее слово на самом деле является словом...)

Ответ 3

Вы можете сделать это, и люди часто делают.

Например, людям нравится помещать теги script непосредственно перед закрытием </body>, чтобы сделать веб-страницы более быстрыми.

Кроме того, если вы создаете блок script после создания элемента, вам не нужно ждать готовности DOM.

Будьте осторожны, не добавляйте или не удаляйте элемент из незакрытого предка в дереве разметки (не включая блок-адрес блока script), или вы получите страшный Операция Прервана ошибка в IE.

Ответ 4

Это законно согласно спецификации.

Большинство примеров используют их в заголовке, поскольку заголовки на первом месте, и браузер сможет анализировать ссылку и быстрее загружать файлы JS.

Кроме того, это ссылки и не являются частью дисплея, поэтому традиционно помещаются в заголовок.

Ответ 5

Это совершенно легально, но, похоже, в нем есть разные мнения. Те, кто говорит, чтобы положить все ссылки на javascript в голове, утверждают, что script загружается до того, как остальная часть страницы станет видимой и зависит от нее. Таким образом, ваш пользователь не будет видеть объект на экране, попытаться взаимодействовать с ним и получить сообщение об ошибке, потому что код javascript еще не загружен.

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

Ответ 6

Только что добавить:

Я предпочитаю помещать Javascript прямо перед </body>. Мои причины таковы:

  • Содержимое может загружаться и отображаться первым. Если вы сначала загружаете огромные файлы Javascript, большинство из которых не имеют смысла до загрузки страницы, пользователь не сможет ничего увидеть, пока файлы JS не будут загружены.
  • Большинство JavaScript-кода, требуемых для работы с пользовательским интерфейсом, могут работать только после того, как пользовательский интерфейс был загружен. Размещение кодов в конце html файла уменьшает необходимость использования обработчика событий onload.
  • Очень плохая привычка размещать фрагменты Javascript по всему HTML файлу. Размещение всех в конце HTML файла позволяет вам более эффективно управлять вашим Javascript.

Ответ 7

JavaScripts внутри тела будет выполняться немедленно, пока страница загружается в браузер

Размещение javascript в конце тела отложит загрузку javascript (то есть: страница будет отображаться быстрее), но помните, что любая функция javascript, используемая для события, должна быть загружена перед объявлением события, в основном потому, что пользователи могут быть способный запустить событие до того, как страница будет полностью загружена (поэтому перед загрузкой функции)!

Ответ 8

Я использовал, чтобы поместить это в голову, тогда я слышал, что загрузка страницы занимает больше времени, поэтому я начал размещать скрипты в самом низу. Тем не менее, я узнал, что самый "чистый" способ сделать это - поместить его в голову, но вы разместите script внутри функции document.ready. Таким образом, у вас есть лучшее из обоих миров. Он более чист, потому что он находится в голове, и он не загружен до загрузки содержимого, поэтому нет никаких проблем с производительностью.

С помощью jQuery, например, вы можете сделать это следующим образом:

$(document).ready(function() {
    alert('test');
});

Предупреждение будет всплывать только при полной загрузке страницы, даже если script находится в голове.