Как работает браузер: дерево рендеринга, HTML/CSS парсинг, модели цикла событий

Поделиться
HTML-код
  • Опубликовано: 28 сен 2024
  • Доклад Дмитрия Разинкова на митапе по веб-разработке, организованном DSR Corporation.
    Вы узнаете, какие процессы происходят в браузере при отрисовке веб-страниц, разберетесь со структурой дерева рендеринга, узнаете о наиболее эффективных CSS-селекторах, распространенных браузерных движках, особенностях парсинга HTML/CSS и моделях цикла событий.
    Дмитрий поделится действительно работающими хитростями оптимизации производительности веб-приложений и сайтов, проверенными на крупных веб-проектах для международных компаний.

Комментарии • 48

  • @somethingn6091
    @somethingn6091 2 года назад +1

    Невероятно полезно для джунов, спасибо))

  • @dzianisdashkevich1848
    @dzianisdashkevich1848 3 года назад +2

    клевый доклад, спасибо большое!

  • @armensargsyan8981
    @armensargsyan8981 Год назад

    Спасибо за всю инфу, про Layers вообще не знал(это меняет многое!), еще раз спасибо!

  • @ДмитроЯкимов-ч6ж
    @ДмитроЯкимов-ч6ж 3 года назад +1

    Крутой доклад, спасибо!

  • @dobermanpharaoh7567
    @dobermanpharaoh7567 3 года назад +2

    супер, узнал много нового, особенно по дев тулз

  • @damirkacineman538
    @damirkacineman538 4 года назад +32

    Гоподи, почему так мало лайков, это же гииииигантский раздел за 1 час с лишним, спасибо большое за ваши труды!

  • @АлексейВолков-ц1л7е
    @АлексейВолков-ц1л7е 2 месяца назад

    А чего всё на английском-то?

  • @МАТВЕЕВ-ц7л
    @МАТВЕЕВ-ц7л 2 года назад +4

    Аттрибут defer тоже самое, что и async, только можно явно указать порядок выполнения скриптов? 😂
    Какой ужас.
    Аттрибут defer явно указывает парсеру, что скрипт должен быть загружен только после построения всего dom.
    А async может загрузить скрипт до построения dom и может привести к критическим ошибкам, если в данном скрипте есть обращение к дом, который ещё не загрузился.
    Это теория на уровне junior.

    • @ДмитрийРазинков-н9ф
      @ДмитрийРазинков-н9ф 2 года назад

      ты все верно говоришь) именно это я подразумевал сказать, но соглашусь - сформулировал очень неоднозначно

  • @АнастасияСмирнова-т4ь

    Хороший доклад, спасибо! Хорошо структурирован и очень полезный.

  • @AlexeySchemyakin-w3l
    @AlexeySchemyakin-w3l 8 месяцев назад +1

    Насколько я понимаю, функция requestIdleCallback как раз очень полезная. Она ведь запускается только тогда, когда нет нагрузки и есть свободные ресурсы

  • @zakchips
    @zakchips 3 года назад +6

    спасибо. хорошая структура материала, помогает восполнить очевидные и не очень пробелы в знаниях.

  • @oleg_andrianov
    @oleg_andrianov 2 года назад +4

    я не понимаю зачем делать слайды на английском языке, потому что аудитория русская. Если ты англичанин - вот тебе ссылка на английскую версию слайдов. Или же чувак хочет вещать и для англоязычной аудитории. Хотя, мне кажется, там и своих героев хватает. Хотя я и знаю язык в достаточной степени, чтобы понимать о чем идет речь на слайдах, все же отвлекаясь на перевод слов отвлекаешься от того, что говорит докладчик, или приходится останавливать видео. Я что хочу сказать, что это - не очень хороший жест по отношению к слушателям, и думал он в момент составления слайдов явно не о них. До конца не досмотрел еще, но в целом материал кажется неплохим.
    Досмотрел. Материал обширный и все сразу переварить не получится. Надо дальше вникать в детали и проч. Спасибо за доклад.

    • @Maxim9575
      @Maxim9575 2 года назад

      Скорее всего доклад не для русских, отсюда и англоязычность. А перевести, рука обломится, поэтому что имеем то имеем. Проще пойти почитать информацию самостоятельно в таком случае, достоверность будет выше чем слушать стороннюю интерпретацию.
      P.S У меня есть ссылочки на очень интересные темы связанные с работой браузера если нужно могу поделиться. Я это вообще на перемотке глянул, подача заунывная.

    • @oleg_andrianov
      @oleg_andrianov 2 года назад

      @@Maxim9575 скиньте, пожалуйста в личку или сюда

    • @Maxim9575
      @Maxim9575 2 года назад

      @@oleg_andrianov ответ то ли фильтруется с ссылками либо автор канала удаляет. Оставьте мне свой почтовый ящик.

  • @yaolegoleynik
    @yaolegoleynik 3 года назад +8

    Спасибо отличный доклад

  • @slavikfedorik1896
    @slavikfedorik1896 Год назад +1

    Если не ошибаюсь, setTimeout это макротаска

  • @kirillpavlovskii8342
    @kirillpavlovskii8342 2 года назад +9

    Промисы это часть языка JavaScript , они никак не относятся к браузерным api. Браузерный api это fetch

    • @D0nSergio
      @D0nSergio 2 месяца назад

      Колбэки все равно ждут пустого стека, тут браузер учавствует, промис это просто интерфейс иного взаимодействия, без колбэк хэллов в коде

  • @evgenylevchenya8734
    @evgenylevchenya8734 4 года назад +7

    Клёвый доклад

  • @xrollup
    @xrollup 3 года назад +13

    Пиарщица-стройняшка, ничо так :)

  • @sad_rin
    @sad_rin 3 года назад +3

    Очень очень поверхностно (

  • @takashimurakami3560
    @takashimurakami3560 21 день назад

    сын цирка

  • @Ushjsuuhensb
    @Ushjsuuhensb Месяц назад

    Начало 1:42

  • @TeppopucT
    @TeppopucT 3 года назад +3

    Я здесь, потому что хочу понять, почему мои 100-200 мс превращаются в ваши 500-2000 мс.

  • @Alexus1504
    @Alexus1504 3 года назад +2

    Интересный доклад!

  • @danilx6239
    @danilx6239 Год назад

    Доклад в целом неплохой, но подача хромает. Даже не буду говорить про саму подачу от спикера. Скажу что звук самой записи плохой. Можно и нужно лучше, если вы выкладываете на ютуб хотите собирать лайки.
    От себя добавляю, что хотелось узнать про тяжесть парсинга различных CSS-селекторов. К сожалению тут этого коснулись совсем немного. Понимаю, о чем говорит автор, но на практике никогда не встречал проблем с вложенными цсс-селекторами. Мне кажется что БЭМ был придуман не для ускорения цсс-парсинга, а для борьбы с "перезаписыванием" различных цсс-правил.
    Моё мнение - может в 2007 году вложенные селекторы и нагружали браузер, но современный цсс работает на столько быстро и хорошо, что это вообще не та проблема, на которую нужно смотреть. Дом состоящий из 100-150к узлов нагрузит браузер намного сильнее, чем сложный цсс, примененный на этот дом.

  • @ДенисБосый-ю7р
    @ДенисБосый-ю7р 2 года назад +1

    Не понял, о каких потоках идёт речь на 01:04:00. JS же однопоточный

    • @dsrcorporationru
      @dsrcorporationru  2 года назад +2

      В данном случае речь идёт о веб воркерах. Браузерный Web API позволяет обозначить кусок логики как воркер, и после этого браузер будет выполнять его в отдельном потоке. Веб воркер не имеет доступа к main thread потоку, в котором исполняется основной js. Если ресурсов устройства хватит, то web worker API исполнит код, обозначенный как web worker, в отдельном потоке, иначе в конкурентном режиме.

  • @egorpopov7965
    @egorpopov7965 3 года назад +1

    охуенно пацаны, лайк

  • @denispepper2830
    @denispepper2830 Год назад +1

    Лекция - огонь!!!!

  • @AlenaHrudavenka
    @AlenaHrudavenka Год назад

    Спасибо! Очень полезно и доступно!

  • @СлаваМягков-й3т
    @СлаваМягков-й3т 2 года назад

    Спасибо, это великолепный доклад.

  • @webxcryptoit7308
    @webxcryptoit7308 Год назад

    Звук, ужасный!

  • @OutsideVibe
    @OutsideVibe Год назад

    спасибо

  • @MsZulu0
    @MsZulu0 4 года назад +3

    Господи, почему у вас все разрабы сидят на презентации... Такое чувство что вы боитесь публику, прячетесь за столом. Удручает. Посмотрите как себя ведут спикеры на крыпных митапах. Тема хорошая, но осадочек от того что докладчик от меня что-то прячет осталось)

    • @dsrcorporationru
      @dsrcorporationru  4 года назад +2

      Станислав, а сможете привести пример образцового выступления с Вашей точки зрения?

    • @ubube4603
      @ubube4603 4 года назад

      @@dsrcorporationru ruclips.net/video/3N4fXRm_Dic/видео.html

    • @Giri-16108
      @Giri-16108 3 года назад +1

      @@dsrcorporationru ruclips.net/video/vkUTX1hruF8/видео.html&ab_channel=DevConf

    • @1want2be3
      @1want2be3 3 года назад +32

      Согласен. Можно пойти дальше и провести митап стоя на голове.
      Поражаюсь баранам, которым важно КАК, но не важно ЧТО. Осадочек у него остался, какое надо самомнение иметь чтобы полагать, что кому-то не насрать на тебя - я не знаю.

    • @Alexus1504
      @Alexus1504 3 года назад +1

      А зачем стоять? Что за бзик?!

  • @egorrublev5529
    @egorrublev5529 9 месяцев назад

    всё бы хорошо но слушать не возможно, работайте над ораторским искусством и подачей