Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   async defer порядок загрузки файлов (https://javascript.ru/forum/misc/76192-async-defer-poryadok-zagruzki-fajjlov.html)

Fomax 12.12.2018 13:35

async defer порядок загрузки файлов
 
проставил async / defer в конце страницы таким образом:

<script defer src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script async src="js/jquery.maskedinput.min.js"></script>
<script async src="js/owl.carousel.min.js"></script>
<script defer src="js/scripts.js"></script>


Правильно ли я рассуждаю:

1) Без этих атрибутов скрипты загружаются один за другим, и пока не загрузиться предыдущий, следующий не начнет загружаться
2) Все 4 скрипта загружаются одновременно
3) первым отработает jquery, независимо от того кто загрузился раньше
4) Следующим отработает либо maskedinput либо owl.carousel, смотря кто из них загрузился раньше.
5) Последним отработает scripts.js, даже если он загрузиться раньше всех

?

Nexus 12.12.2018 13:37

http://htmlbook.ru/html/script/async
http://htmlbook.ru/html/script/defer

Цитата:

Сообщение от Fomax
проставил async / defer в конце страницы

Зачем их в конце страницы ставить? Чему помешает загрузка этих скриптом?

Nexus 12.12.2018 13:39

Цитата:

Вопрос весьма простой и требует простого ответа - да\нет. Не к чему ссылками кидаться
Перейдите по ссылкам и на ваш весьма простой вопрос найдете весьма простой ответ, заодно поймете как это работает.

Fomax 12.12.2018 13:43

Вы возможно не поверите, но я перед тем как проставить эти атрибуты, прочитал про них именно там. Но неужели так сложно ответить конкретно? Я лишь хочу узнать, правильно ли я понял или нет. Для вас это скорее всего очевидное элементарное, но не все рождаются с заложенными знаниями и должным пониманием в этой области

MallSerg 12.12.2018 14:23

Цитата:

Сообщение от Fomax (Сообщение 500366)
Правильно ли я рассуждаю:

нет

Кстати по ссылкам чушь выдуманная написана. Лучше в таких вещах смотреть на стандарт
https://www.w3.org/TR/2011/WD-html5-...r-script-defer

Nexus 12.12.2018 14:55

Цитата:

Сообщение от Fomax
1) Без этих атрибутов скрипты загружаются один за другим, и пока не загрузиться предыдущий, следующий не начнет загружаться

Да, исполняться они будут по очереди.
Цитата:

Сообщение от Fomax
2) Все 4 скрипта загружаются одновременно

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

Цитата:

Сообщение от MallSerg
Кстати по ссылкам чушь выдуманная написана.

Можете написать в чем чушь заключается?

MallSerg 12.12.2018 15:12

К примеру
цитата с htmlbook.ru "страница будет загружена полностью"
это не то же самое что "he script is executed when the page has finished parsing."
полная загрузка страницы подразумевает что все скрипты и картинки были загружены тогда и наступает событие window.onload

Так же про asunc
цитата с htmlbook.ru "При наличии атрибута async браузер при возможности запускает скрипт асинхронно."
В стандарте же говорится что скрипт можно загрузить асинхронно не останавливая загрузку и отображение страницы и исполнить когда он загрузится если не указан атрибут defer.
Это бинарные атрибуты и они могут использоваться совместно.

так же в описании отсутствует довольно важное пояснение.
If neither attribute is present, then the script is fetched and executed immediately, before the user agent continues parsing the page.

Nexus 12.12.2018 15:16

MallSerg, благодарю.

Fomax 12.12.2018 17:45

Спасибо, господа, за внесенную ясность!:)


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