Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Скрипт в body или в файле? (https://javascript.ru/forum/misc/30186-skript-v-body-ili-v-fajjle.html)

spo 27.07.2012 09:29

Скрипт в body или в файле?
 
Есть ситуации когда скрипт нужно размещать в body после html кода. Я не совсем понимаю когда это нужно делать и почему нельзя в отдельном файле js. Прошу подсказать где можно почитать о всех подобны ньюансах.

lord2kim 27.07.2012 10:09

Цитата:

Сообщение от spo (Сообщение 191985)
Есть ситуации когда скрипт нужно размещать в body после html кода.

например, когда нужно вывести какие-то данные из скрипта
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">document.write("данные из скрипта");</script>
</body>
</html>

Цитата:

Сообщение от spo (Сообщение 191985)
Я не совсем понимаю когда это нужно делать и почему нельзя в отдельном файле js.

можно вынести в отдельный js-файл
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript" src="script.js"></script>
</body>
</html>

bes 27.07.2012 13:18

Цитата:

Сообщение от spo
Есть ситуации когда скрипт нужно размещать в body после html кода

Если скрипт в body обращается к элементам DOM, то обычно после html-кода пишут, чтобы DOM успел сформироваться, если код скрипта поместить в window.onload, то без разницы где в body располагать.

spo 27.07.2012 16:44

Цитата:

Сообщение от bes (Сообщение 192043)
... если код скрипта поместить в window.onload, то без разницы где в body располагать.

Ну то есть если я как в документации по jQuery код заключаю в
$(function() {
...
})

то все ок? Ведь он и есть сокращенная версия window.onload

bes 27.07.2012 17:55

Главное, чтобы элементы, которые участвуют в операциях были загружены на момент работы.
Если нужна глобальная готовность DOM дерева и если с картинками не работаете $(document).ready наверное лучше, так как она не ждёт пока все картинки загрузятся.
Смотрите события загрузки документа http://jquery.page2page.ru/index.php...82%D0%B8%D1%8F

PS: в jquery особо не шарю, так как не юзаю, так, для ответа поизучал, если ошибся, тут есть кому поправить :)

devote 27.07.2012 18:02

Цитата:

Сообщение от bes
$(document).ready наверное лучше

ну дык он его и привел
Цитата:

Сообщение от spo
$(function() {...})

это тот же $(document).ready

bes 27.07.2012 18:12

devote, так как особо не шарю, принял за true
Цитата:

Сообщение от spo
Ведь он и есть сокращенная версия window.onload

window.onload ждёт загрузки всех картинок, (document).ready нет, но теперь буду знать, что это была сокращённая версия именно ready


Часовой пояс GMT +3, время: 18:24.