2015-11-26 5 views
-2

У меня есть сомнения по поводу дома, нагрузки, тела, головы. когда я связываю некоторые js в голове, он не работает. в противном случае его работа в теле.Что такое средства для дома, нагрузки, тела, головы?

И я заметил в JSFIDDLE, это упоминается.

Что это значит для этого и не так?

Не могли бы вы объяснить об этом?

+2

Уже ответил на stackoverflow [dom ready vs onload] (http://stackoverflow.com/questions/3698200/window-onload-vs-document-ready) –

+1

'domready' и' onload' сопоставимы, но ' 'и' 'ОЧЕНЬ разные. Пойдите, прочитайте любой учебник HTML. –

ответ

0

<head> содержит всю информацию о свойствах страницы, CSS и JavaScript. Хотя CSS и JavaScript могут быть включены в тело. Глава будет включать метаинформацию страницы, название, базовый URL и т. Д.

<body> содержит фактическое содержание тела. Какие пользователи, посещающие веб-сайт, на самом деле видят или взаимодействуют.

DOM - Объектная модель документа. Это базовая структура, или вы можете сказать скелет страницы, на которой стоит страница.

domready - это событие, которое будет запущено, как только DOM закончит загрузку. Например, предположим, что страница имеет только одно изображение. Он будет ждать анализа тега изображения.Как только будет получен тег изображения, он будет запущен. Он НЕ будет ждать загрузки всего изображения из источника.

onload - это событие, которое запускается при загрузке полной (DOM + content) страницы. В предыдущем примере в donready, onload будет ожидать, что изображение будет извлечено из источника, а затем будет запущено.

3

Javascript, который обращается к DOM, не должен выполнять UNTIL, когда DOM был загружен.

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

Код, который выполняется в разделе <body> документа, будет выполняться ПОСЛЕ любых элементов DOM, которые находятся перед этим тегом сценария, но ПЕРЕД любыми элементами DOM, которые находятся после тега сценария.

Если вы положили теги <script> в самом конце раздела <body> прямо перед тегом </body>, тогда вся DOM будет готова к выполнению этого скрипта.

DOMContentLoaded (который jsFiddle вызывает onDomReady) - это событие, которое запускается, когда DOM загружается и доступен для доступа к скрипту. Если вы запускаете свой код при возникновении события DOMContentLoaded, DOM будет готов для вашего кода для доступа к этой точке.

window.onload - это событие, которое запускается при загрузке DOM, а также любые ресурсы, указанные в HTML-странице страницы, также загружаются (например, изображения). Это всегда срабатывает после события DOMContentLoaded.

Вы можете увидеть более подробное описание этого вопроса здесь: pure JavaScript equivalent to jQuery's $.ready() how to call a function when the page/dom is ready for it


Если код работает, когда в <body>, но не в <head>, то вы, вероятно, работает код слишком рано <head> тег перед тем DOM готов. Вы можете либо просто оставить его ближе к концу <body>, либо вы можете подключить его к одному из событий загрузки, а затем можете поместить его в тег <head>, если хотите.

+0

Спасибо за приятное объяснение. Я мог легко понять. – Darious

 Смежные вопросы

  • Нет связанных вопросов^_^