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

Ответ

При парсинге 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> <!-- выполнится при готовности -->