Что происходит при встрече с тегами link, img, script при формировании DOM-дерева

«Что происходит при встрече с тегами link, img, script при формировании DOM-дерева» — вопрос из категории HTML, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

При парсинге HTML браузер встречает эти теги и обрабатывает их особым образом:

  • <link> (с атрибутом rel="stylesheet") - блокирует рендеринг до загрузки CSS-файла, но не блокирует парсинг HTML. DOM-элемент создаётся сразу.

  • <img> - не блокирует парсинг и рендеринг. Изображение загружается асинхронно, DOM-элемент создаётся сразу, но отрисовка может произойти позже.

  • <script> - по умолчанию блокирует парсинг HTML до загрузки и выполнения скрипта. DOM-элемент создаётся после выполнения.

Пример с async/defer:

<script src="script.js" defer></script> <!-- выполнится после парсинга -->
<script src="script.js" async></script> <!-- выполнится при готовности -->