Я просто понял, что мне не хватает фундаментальных знаний о том, что именно происходит, когда страница загружается в браузер.
Предположим, что у меня есть такая структура:
<head>
<script src="jquery.js" type="text/javascript"></script>
<script src="first.js" type="text/javascript"></script>
</head>
<body>
...
<script type="text/javascript" id="middle">
// some more JS here...
</script>
...
<script src="last.js" type="text/javascript"></script>
</body>
Вот мои вопросы:
-
В какой последовательности происходят события? Сначала выполняется DOM, затем выполняется JS, наоборот, или это одновременное (или как только файлы JS заканчивают загрузку, без учета DOM)? Я знаю, что скрипты загружаются по порядку.
-
Где находится
$(document).ready()
? В закладке Firebug Net отображается событиеDOMContentLoaded
и событиеload
. Вызывается$(document).ready()
, когда срабатывает событиеDOMContentLoaded
? Не удалось найти какую-либо конкретную информацию об этом (все просто упоминают "при загрузке DOM" ). -
Что именно означает "когда загружается DOM"? Что все HTML/JS было загружено и проанализировано браузером? Или просто HTML?
-
Возможна ли следующая сценария: есть
$(document).ready()
, который вызывает код вlast.js
, но работает до того, как загружен файл last.js? Где, скорее всего, будет (вfirst.js
или встроенном блоке кода)? Как предотвратить этот сценарий?
Я хочу раскрыть общую картину того, что происходит, когда и что зависит от того, что (если вообще).