Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Как event loop влияет на парсинг HTML и как этого избежать?
Event loop может приостанавливать парсинг HTML, если JavaScript выполняется во время загрузки страницы. Когда браузер встречает тег <script>, он останавливает парсинг и выполняет скрипт, что может замедлить загрузку страницы. Чтобы избежать этого, разработчики могут использовать атрибуты async или defer, которые позволяют загружать и выполнять скрипты асинхронно, не блокируя парсинг.
Что происходит в браузере после получения HTML-страницы от сервера?
После получения HTML браузер начинает его разбирать и строить DOM. По ходу парсинга он находит ресурсы (CSS, JS, изображения, шрифты) и запускает их загрузку. Когда CSS загружен и распарсен, строится CSSOM, затем из DOM + CSSOM собирается дерево рендеринга. Дальше браузер рассчитывает размеры и позиции элементов (layout) и рисует их (paint), а затем может “склеивать” слои (composite). Скрипты и стили могут блокировать некоторые шаги, из-за чего первая отрисовка откладывается.
Как влияют скрипты на блокировку рендеринга?
Скрипты могут блокировать рендеринг, потому что браузер должен остановить парсинг HTML, загрузить и выполнить JavaScript. Это нужно, так как скрипт может изменить DOM или CSS. Пока синхронный скрипт не выполнен, браузер не продолжает строить DOM и не может корректно рендерить страницу. Атрибуты defer и async позволяют уменьшить или убрать эту блокировку.
Как происходит парсинг HTML и построение DOM-дерева?
Браузер читает HTML-документ последовательно, символ за символом. Он разбивает текст на токены и на их основе создаёт узлы DOM. Каждый HTML-тег становится узлом дерева. В результате формируется иерархическая структура, отражающая вложенность элементов страницы.
Влияют ли стили на парсинг страницы?
CSS напрямую не блокирует парсинг HTML, но может блокировать рендеринг страницы. Браузер старается получить стили до первой отрисовки, чтобы избежать визуальных скачков. Также CSS может косвенно блокировать выполнение JavaScript, если скрипт зависит от стилей. Поэтому порядок подключения ресурсов имеет значение.
Как влияют теги script на парсинг HTML?
Рейтинг:
5
Сложность:
5
Обычный тег <script> блокирует парсинг HTML, пока файл не загрузится и не выполнится. Атрибут defer позволяет продолжить парсинг и выполнить скрипт после построения DOM. Атрибут async загружает и выполняет скрипт независимо от DOM. Выбор режима влияет на скорость загрузки и порядок выполнения.
Рейтинг:
3
Сложность:
8
Рейтинг:
5
Сложность:
6
Рейтинг:
5
Сложность:
7
Рейтинг:
4
Сложность:
6
Рейтинг:
4
Сложность:
6