Поиск по блогу

JavaScript. Event Loop — макрозадачи и микрозадачи

Поток выполнения в браузере, равно как и в Node.js, основан на событийном цикле. Есть бесконечный цикл, в котором движок JavaScript ожидает задачи, исполняет их и снова ожидает появления новых. Движок JavaScript большую часть времени ничего не делает и работает, только если требуется исполнить скрипт/обработчик или обработать событие.

JavaScript. Promise API

Объект Promise используется для отложенных и асинхронных вычислений. Представляет собой обёртку для значения, неизвестного на момент создания промиса. Он позволяет обрабатывать результаты асинхронных операций так, как если бы они были синхронными. Вместо конечного результата асинхронного метода возвращается обещание…

JavaScript. Асинхронный код — callback, promise и async/await

По умолчанию код в JavaScript выполняется последовательно — в одном потоке, синхронно. То есть таким образом, когда каждая следующая операция ждёт завершения предыдущей. Но часто встречаются задачи, для выполнения которых требуется значительное время. Если их реализовать с помощью синхронного кода, то это может привести…

Скрипты — атрибуты async и defer

Когда браузер загружает HTML и доходит до тега <script>…<script>, он не может продолжать строить DOM. Он должен сначала выполнить скрипт. То же самое происходит и с внешними скриптами <script src="…"></script> — браузер должен подождать, пока загрузится скрипт, выполнить его, и только затем обработать остальную страницу.

DOM, часть 4 из 4. Атрибуты и свойства

При написании HTML-кода мы можем задавать атрибуты для атрибуты HTML-элементов. Атрибуты могут быть стандартными и нестандартными, причем стандартный атрибут для одного тега может быть нестандартным для другого. Например, атрибут type является стандартным для элемента <input>, но не является стандартным для <body>.

DOM, часть 3 из 3. Поиск элементов

Свойства навигации по DOM хороши, когда элементы расположены рядом. А что, если нет? Как получить произвольный элемент страницы? Для этого в DOM есть дополнительные методы поиска — getElementById, getElementsByTagName, getElementsByClassName, querySelector, querySelectorAll.

DOM, часть 2 из 3. Изменение документа

В соответствии с объектной моделью документа («Document Object Model», коротко DOM), каждый HTML-тег является объектом. Вложенные теги являются «детьми» родительского элемента. Текст, который находится внутри тега, также является объектом. Модификации DOM — это ключ к созданию «живых» страниц.

Браузерные события, часть 5 из 5. Генерация пользовательских событий

Можно не только назначать обработчики, но и генерировать события из js-кода. Например, корневой элемент меню, реализованного с помощью javascript, может генерировать события, относящиеся к этому меню: open (меню раскрыто), select (выбран пункт меню) и т.п. А другой код может слушать эти события и узнавать, что происходит с меню.

Браузерные события, часть 4 из 5. Действие браузера по умолчанию

Многие события автоматически влекут за собой действие браузера. Например, клик по ссылке инициирует переход на новый адрес, а нажатие кнопки «отправить» в форме — отправку данных на сервер. Если мы обрабатываем событие в JavaScript, то зачастую такое действие браузера нам не нужно. Есть два способа отменить действие браузера…

Браузерные события, часть 3 из 5. Делегирование

Делегирование возможно благодаря тому, что события всплывают. А это означает, что оно возникает не только на самом элементе, но затем и на всех его предках. Таким образом, при добавлении обработчика одному из предков, он будет выполняться всякий раз, когда это событие будет происходит на любом из его потомков.
Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.