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

Как загружаются и выполняются файлы JavaScript?

Я не часто вижу разговор или исследование по загрузке/исполнению файла JavaScript. Меня интересуют сайты, объясняющие, как обрабатывается JavaScript. В частности, если у меня есть

<script src="a.js"></script>
<script src="b.js"></script>
<script src="c.js"></script>

Предполагаю, что сначала загружается a.js, затем b.js и, наконец, c.js, или они загружаются одновременно? Как насчет исполнения? Являются ли сценарии в заголовке предпочтительнее над телами в теле?

Основная причина, по которой меня так интересует эта тема, заключается в том, что я пишу программное обеспечение JavaScript, которое использует динамическую загрузку этих скриптов, и иногда я получаю ошибки, такие как x is undefined (он не был загружен до другие скрипты), но обычно эти ошибки не будут возникать. Я не понимаю, почему.

4b9b3361

Ответ 1

Скрипты загружаются параллельно, но анализируются и выполняются в том порядке, в котором они отображаются в HTML, блокируя другие действия на странице (включая рендеринг) до тех пор, пока они не будут выполнены. Сценарии могут быть неблокирующими, если они добавлены кодом JavaScript через DOM, например, или если атрибут async представлены в последних версиях Firefox.

Ответ 2

Что контролирует загрузку JavaScript, это в основном ваш браузер. Если вы загружаете их все из одного домена, например, вы делаете это выше, они будут загружаться один за другим, поэтому загружаются в указанном вами порядке.

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

В отношении приоритета загрузки большинство книг по оптимизации веб-сайта скажут вам, что вы загружаете js файлы в самом низу, так как это ускорит загрузку вашей страницы, а js fIle будет загружен в качестве последнего необходимого ресурса. Это нужно делать с осторожностью, если ваши страницы полагаются на JavaScript непосредственно при загрузке, вы можете столкнуться с бесконечными ошибками js.

Библиотеки, такие как jquery, очень многое помогут с этим, так как они позволят выполнять действие js только после того, как DOM доступен, следовательно, нет js-ошибок, когда js загружается в нижней части HTML.

Еще одна интересная вещь: убедитесь, что вы правильно сохранили свои js файлы и придерживаетесь q минимальных файлов, поскольку при этом вы выполняете только несколько запросов сервера, и я буду иметь ваш JavaScript с готовностью доступный за меньшее время.

Надеюсь, это поможет вам.