JavaScript: Callstack и Event Loop

  Рет қаралды 17,519

Hillel IT School

Hillel IT School

4 жыл бұрын

Александр Грибанов, Senior Developer DataArt и преподаватель Компьютерной школы Hillel, о понятиях Callstack и Event Loop.
Telegram-канал Александра Грибанова об интересных и полезных штуках из мира Frontend-разработки: t.me/flipcodejs
Компьютерная Школа Hillel
ithillel.ua
#КомпьютернаяшколаHillel #javascript #callstack #eventloop

Пікірлер: 35
@yanbraverman2203
@yanbraverman2203 2 жыл бұрын
Спасибо. Саша как всегда максимально доходчиво и понятно объясняет любые самые сложные темы.
@user-pd4gt9zz9c
@user-pd4gt9zz9c 4 жыл бұрын
Вот так вот хорошо... Прям очень хорошо) вот в такие моменты возникает желание послушать что-нибудь ещё...)
@dmitrijponkin
@dmitrijponkin 4 жыл бұрын
Отличное объяснение! Спасибо :))
@vishnyo
@vishnyo 2 жыл бұрын
Лайк за простоту донесения материала
@Black1991Star
@Black1991Star 4 жыл бұрын
Спасибо, за объяснение
@suslikest3708
@suslikest3708 3 жыл бұрын
Фига се круто обьяснил, спасибо!
@developerabdulaev4768
@developerabdulaev4768 2 жыл бұрын
Идеальное объяснение для меня.
@HillelITSchool
@HillelITSchool 2 жыл бұрын
Идеальный комментарий для нас 🙂
@dmitrykarpovich186
@dmitrykarpovich186 3 жыл бұрын
Спасибо! Оч наглядно
@andrewdeiak6871
@andrewdeiak6871 3 жыл бұрын
Полезно!
@sadcode8017
@sadcode8017 3 жыл бұрын
Спасиб, автор
@Maxim9575
@Maxim9575 2 жыл бұрын
Хорошее видео жаль без терминологии микро и макро задач. А так очень круто особенно, понравилась картина когда созданы обработчики событий и они сидят в web-API
@HillelITSchool
@HillelITSchool 2 жыл бұрын
Спасибо, Максим! Рады, что вам понравилось.
@ms77grz
@ms77grz 2 жыл бұрын
👍👍
@noway1725
@noway1725 4 жыл бұрын
08:22. Не совсем ясно, что имеется ввиду под "примерно 60 раз в секунду браузер пытается перерисовать содержимое документа"? Утверждается, что 60 раз в секунду браузер делает repaint?
@aleksandrgribanov
@aleksandrgribanov 4 жыл бұрын
Имеется в виду подготовка каждого конкретного кадра. Этот процесс состоит из нескольких частей, в том числе и repaint. Но в рамках этого процесса подготовки кадра, некоторые шаги могут пропускаться, если браузер знает что JS не менял свойства элементов, которые влияют на конкретный шаг. Поэтому, если вы не меняете 60 раз в секунду свойство отвечающее за стадию paint, то и repaint не будет проходить 60 раз в секунду. В целом производительность UI отдельная интересная и глубокая тема. Немного подробностей можно почитать тут frarizzi.science/journal/web-engineering/browser-rendering-queue-in-depth (en) developers.google.com/web/fundamentals/performance/rendering (ru)
@noway1725
@noway1725 4 жыл бұрын
@@aleksandrgribanov Спасибо за ссылки! Теперь понятно, что Вы имели ввиду.
@UserSo4reUsu75ry
@UserSo4reUsu75ry 4 жыл бұрын
Все хорошо. Проблема лишь в том, что никто не рассказывает, что очередей задач на самом деле не одна и что в разных статьях называют её по разному callback queue, message queue и тд. Сложно найти материал, рассказывающий как в действительности устроен eventloop и вызов task, microtask и nexttick, animationframe. Все повторяют одно и тоже год за годом )
@Ekzalt
@Ekzalt 4 жыл бұрын
Почему же никто? Вот профессиональный разбор Node.js EventLoop на русском: kzbin.info/www/bejne/bZeaaWqJqMyepKM
@UserSo4reUsu75ry
@UserSo4reUsu75ry 4 жыл бұрын
@@Ekzalt да это наверно самое подробное видео за всё время )
@TrinoUNO
@TrinoUNO 4 жыл бұрын
Я так понимаю если во время выполнения Slow Function продолжать нагружать стек, то пользователь еще дольше будет ждать?
@astrobrite540
@astrobrite540 4 жыл бұрын
TrinoUNO как вы собираетесь нагружать стек
@TrinoUNO
@TrinoUNO 4 жыл бұрын
@@astrobrite540 например между завершением Slow Function и Main() (допустим что мэйн это тоже какая то функция, а не скрипт) будет вызов еще какой то функции.
@andreygokhan6893
@andreygokhan6893 4 жыл бұрын
@@astrobrite540 пользователь сам нагрузит стек часто кликая по неработающим элементам. Обычное поведение любого человека. Кстати , кто нибудь знает как приостановить клики в период блокировки стека?
@aleksandrgribanov
@aleksandrgribanov 4 жыл бұрын
@@andreygokhan6893 Как вариант блокировать элементы управления. Например через аттрибут disabled или css свойство pointer-events
@mushnikov35
@mushnikov35 4 жыл бұрын
@@aleksandrgribanov а как проверить что он кликает много раз или как проверить что стэк занят ??
@oliverreviews8496
@oliverreviews8496 4 жыл бұрын
Стэк?) На сколько я знаю это называется стёк на русском, что кстати сразу дает понятие того, как это работает) Хотя видео рассказано круто, дополняет немного то, что читаешь в документации)
@catsapp
@catsapp Жыл бұрын
Англичане переиначили русское слово Стог в Стек.
@VitaliDziachuk
@VitaliDziachuk 4 жыл бұрын
доклад на уровне джуна
@phello57
@phello57 2 жыл бұрын
а что не было сказано?
@kirillberezin8859
@kirillberezin8859 3 жыл бұрын
Ахаха конечно, если есть авейт то нихрена не работает как обьяснили.
@Maxim9575
@Maxim9575 2 жыл бұрын
await это уже работа с микро задачами, а объяснение было про callstack и eventloop, сам setTimeout является макро задачей, а асинхронные функции это уже микро задачи. Так что не нужно на автора гнать.
@b0dn4r_K
@b0dn4r_K 4 жыл бұрын
Зачем мне джуны в рекомендациях?
@thegate4407
@thegate4407 3 жыл бұрын
Однотипные видео
event loop in javascript #shorts
0:49
Zoref Code
Рет қаралды 40 М.
Normal vs Smokers !! 😱😱😱
00:12
Tibo InShape
Рет қаралды 119 МЛН
CAN YOU HELP ME? (ROAD TO 100 MLN!) #shorts
00:26
PANDA BOI
Рет қаралды 36 МЛН
JS Рекурсия простыми словами и на примере в JavaScript
3:35
How to use VBA-code for a PPT on a Mac
2:41
Doen met Coen
Рет қаралды 15 М.
Три поради, як вчитися ефективно
5:09
Hillel IT School
Рет қаралды 334
Урок 5. JavaScript. Promise. Что это, как работает (+ пример)
23:18
Замыкания в JavaScript | Юрий Федоренко
6:38
Hillel IT School
Рет қаралды 64 М.