Выбор ответа Junior Что происходит при вводе адреса спрашивают часто обновлено

async и defer

Вопрос

На странице два скрипта: <script defer src="a.js"> и <script defer src="b.js">. b.js загрузился раньше. Что верно?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Оба выполнятся после разбора HTML по порядку в документе: a.js, потом b.js. defer сохраняет порядок документа и выполняется после разбора HTML, до DOMContentLoaded.

Варианты ответа

  1. Сначала выполнится b.js, раз он загрузился первым, а потом a.js
  2. Каждый скрипт выполнится сразу по загрузке, не дожидаясь разбора HTML
  3. Порядок не гарантирован: он зависит от того, кто первым попадёт в кеш
  4. Оба выполнятся после разбора HTML по порядку в документе: a.js, потом b.jsправильный ответ

Разбор

defer сохраняет порядок документа и выполняется после разбора HTML, до DOMContentLoaded. «Кто загрузился первым, тот и выполнится» и «порядок не гарантирован» это поведение async. Выполнение сразу по загрузке тоже про async.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.