07 Модуль - DOM. События -- 05 Процесс построения веб-страницы Flashcards

1
Q

Когда браузер создает DOM, если он встречает тег script в HTML, он

A

должен выполнить его сразу.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

По умолчанию, чтобы выполнить скрипт, построение DOM

A

приостанавливается, и возобновляется только после того, как JavaScript-движок выполнил скрипт.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Почему построение DOM приостановается?

A

Скрипты могут изменять как HTML, так и его продукт - DOM, добавляя узлы. Скрипты могут также запрашивать что-то о DOM, и если это происходит, когда DOM все еще строится, он может вернуть неожиданные результаты.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Когда синтаксический анализатор попадает в тег сценария, конструкция DOM не может продолжаться до тех пор, пока JavaScript не завершит выполнение, и JavaScript не будет выполнен до тех пор, пока

A

CSS не будет загружен, проанализирован и не будет доступен CSSOM.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Браузер показал беспорядочную страницу без CSS, а через несколько мгновений стилизованную, это называется

A

Flash of Unstyled Content.
Чтобы обойти эти проблемы, вы должны стремиться как можно быстрее доставить CSS. Помните правило «стили наверху, сценарии внизу»?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Синхронные скрипты блокирующие парсер, это проблема. И не все скрипты одинаково важны для пользователей, например, для отслеживания и аналитики. Решение?

A

Асинхронная загрузка этих менее важных скриптов.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

defer и async - оба атрибута сообщают браузеру, что он может

A

продолжить разбор HTML при загрузке сценария в фоновом режиме, а затем выполнить скрипт после его загрузки. Таким образом, загрузка скриптов не блокирует конструкцию DOM и рендеринг страниц.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Выполнение defer скриптов начинается

A

после завершения парсинга, но перед событием DOMContentLoaded. Это гарантирует, что скрипты будут выполняться в том порядке, в котором они отображаются в HTML, и не будут блокировать синтаксический анализатор.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

async выполняется

A

при первой возможности после завершения загрузки и перед событием загрузки окна. Это означает, что возможно скрипты не выполняются в том порядке, в котором они отображаются в HTML. Это также означает, что они могут прервать создание DOM.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Асинхронные скрипты загружаются с

A

низким приоритетом. Они часто загружаются после всех других скриптов, не блокируя создание DOM.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Атрибут defer загружается вместе с html DOM, но только фоном, и когда он загрузился, он ждет пока полностью загрузиться DOM и только после загрузки DOM’a он выполняется.

A

http://fecore.net.ua/books/m5ph3r-javascript/module-07/images/defer.png

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Атрибут async загружается вместе с html DOM, но только фоном, и когда он загрузился, он не ждет полной загрузки DOM’а, он сразу начинает выполняется, и когда он выполняется он блокирует загрузку DOM, получается что DOM начинается грузиться только после выполнения async скрипта.

A

http://fecore.net.ua/books/m5ph3r-javascript/module-07/images/async.png

How well did you know this?
1
Not at all
2
3
4
5
Perfectly