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

<script> не в <голове> ок?

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

Чтобы уточнить название, скажем, у меня есть это:

alert("Some JS outside ");

Вне тегов <head></head> моего HTML файла. Мой вопрос в том, хорошо ли это делать или нет, и насколько он используется так.

Мои инстинкты говорят мне, что все в порядке - я считаю, что браузер просматривает все HTML-теги <script> и интерпретирует их, когда они его видят, поэтому все должно быть хорошо, но я не настолько хорош в работе браузеров.

Я ищу окончательный (или как можно более близкий к окончательному) ответ здесь - это нормально делать или нет?

РЕДАКТИРОВАТЬ: Чтобы спасти меня, отправляйте это несколько раз, я скажу это здесь. Большое спасибо за всех ваших входных людей. Подпишитесь на всех! Мне придется переподготовку, чтобы поставить JS внизу страниц - теперь, когда я думаю об этом, ослепительно очевидно, что скрипты внизу страницы лучше, чем верх. Спасибо за вашу помощь всем.

4b9b3361

Ответ 1

Лучшее место для тэгов script - перед тегом тега закрытия.

<html>
      <head>
      <title>Example</title>
      </head>
      <body>
            Your Content
      <script type="text/javascript" src="yourScriptHere.js"></script>
      <script type="text/javascript">//Inline scripts etc.</script>
      </body>
</html>

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

Ответ 2

Да, <script> блоки вне <head> в порядке.

На самом деле многие поощряют размещение их в конце <body>. Помещая их перед </body>, откладывает выборку/загрузку до тех пор, пока содержимое страницы... не ускорит рендеринг.

Из спецификации W3C HTML4:

Элемент SCRIPT помещает SCRIPT в документ. Этот элемент может появляться любое количество раз в HEAD или BODY документа HTML.

Ответ 3

Да. Все нормально. Infact, очень часто это необходимо. Во многих случаях у вас может быть некоторый длинный загружаемый (прочитанный: большой загружаемый) javascript, который не является критическим для страницы, поэтому вы хотите сначала загружать содержимое своей страницы, поэтому вы помещаете <script> для этого javascript в в нижней части раздела <body>.

Ответ 4

A script в теле вашего документа будет выполнен, когда он встречается. Если это функция, то "выполнение ее" просто означает определение функции, т.е. Ее добавление в список известных функций. Но если это не функция, если она является блоком автономных операторов, они будут выполняться там, где они встречаются.

Например, если вы написали:

<html><head>... whatever ...</head>
<p>Foo
<script>
document.write("bar")
</script>
<p>Plugh
</html>

В браузере отобразится:

Foobar
Plugh

Это может быть или не быть тем, что вы хотите.