Выбор ответа Junior Что происходит при вводе адреса спрашивают часто обновлено
async и defer
Вопрос
На странице два скрипта: <script defer src="a.js"> и <script defer src="b.js">. b.js загрузился раньше. Что верно?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Оба выполнятся после разбора HTML по порядку в документе: a.js, потом b.js. defer сохраняет порядок документа и выполняется после разбора HTML, до DOMContentLoaded.
Варианты ответа
- Сначала выполнится
b.js, раз он загрузился первым, а потомa.js - Каждый скрипт выполнится сразу по загрузке, не дожидаясь разбора HTML
- Порядок не гарантирован: он зависит от того, кто первым попадёт в кеш
- Оба выполнятся после разбора HTML по порядку в документе:
a.js, потомb.jsправильный ответ
Разбор
defer сохраняет порядок документа и выполняется после разбора HTML, до DOMContentLoaded. «Кто загрузился первым, тот и выполнится» и «порядок не гарантирован» это поведение async. Выполнение сразу по загрузке тоже про async.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Что происходит при вводе адреса»
- DOMContentLoaded и load
- Что попадает в render tree
- Порядок DNS-резолвинга
- ALPN
- Critical rendering path
- TTL в DNS
- HSTS при вводе адреса
- Что даёт preconnect