Кроме событий, которые возникают в ответ на действия пользователей, существует ряд событий, которые привязаны к работе самого браузера. К таким событиям относятся события на загрузку и выгрузку страницы:
DOMContentLoaded важное событие, которое часто используется в коде зависящим от DOM. Оно помогает избежать ошибок, связанных с тем, что скрипты могут начать выполняться до того, как готов DOM, от которого они зависят. В таком случае возникнут ошибки.
Это событие привязано к document
:
<script>
document.addEventListener('DOMContentLoaded', () => {
// Если бы DOM не был готов, мы бы ничего не нашли
const coll = document.querySelectorAll('.help');
coll.forEach((el) => el.classList.add('hidden'));
});
</script>
Скорость построения DOM дерева очень зависима от тегов <script>
. По стандарту, любой <script>
, встреченный в HTML, будет выполняться до полного построения дерева, а значит, скорость отработки кода в этом блоке <script>
будет сильно влиять на то, когда пользователь увидит сам сайт, и на то, когда сработает событие DOMContentLoaded.
Тема оптимизации загрузки скриптов и быстрой инициализации достаточно сложна. Это связано не только с большим количеством факторов, влияющих на порядок и скорость, но также и с тем, что в разных браузерах этот механизм работает по-разному. Здесь мы не будем его разбирать, это тема продвинутого уровня, и по ней написано множество статей.
Обратите внимание на красную и синюю полоску. Красная показывает момент, когда сработало событие load, а синяя - DOMContentLoaded. Внизу картинки указано время срабатывания каждого события, от начала загрузки страницы. Из картинки видно, что браузер сначала скачивает саму страницу (ее html), затем извлекает из нее ссылки на все внешние ресурсы и начинает их загрузку. Для большей эффективности, скачивание ресурсов идет параллельно настолько, насколько это возможно.
Вам ответят команда поддержки Хекслета или другие студенты.
Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.
Загляните в раздел «Обсуждение»:
Статья «Ловушки обучения»
Вебинар «Как самостоятельно учиться»
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.
Наши выпускники работают в компаниях:
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Зарегистрируйтесь или войдите в свой аккаунт