Size: a a a

Веб-компоненты

2019 August 14

MB

Mikhail Bashkirov in Веб-компоненты
Serhii Kulykov
возвращаясь к истории с CSS modules - вот конкретно меня бесят маркетинговые заявления вроде “no more conflicts” и “no global scope”

https://github.com/css-modules/css-modules#why
не вижу там никакого маркетинга, это просто иной способ достигнуть этой же цели, появившийся раньше Shadow DOM
источник

PM

Pavel 🦇 Malyshev in Веб-компоненты
Mikhail Bashkirov
а поподробнее? я как раз читал про прямо противоположные вещи, например то, что эффективнее обрабатывать CSS, который применен к отдельному куску DOM, нежели чем к всей странице
мне кажется тут дьявол в деталях, интересно послушать что ты накопал на эту тему
я тут больше не про CSS говорил, а про то что веб-компоненты в ShadowDOM работают медленее, а без него не будет этой полной инкапсуляции
источник

PM

Pavel 🦇 Malyshev in Веб-компоненты
одно лечим, другое колечим
источник

SK

Serhii Kulykov in Веб-компоненты
Mikhail Bashkirov
не вижу там никакого маркетинга, это просто иной способ достигнуть этой же цели, появившийся раньше Shadow DOM
“no global scope” скрывает факт того, что CSS глобальный, я это имел в виду
источник

SK

Serhii Kulykov in Веб-компоненты
насчет оптимизации стилей, Shadow DOM по идее хорошо ложится на идею CSS containment

https://blogs.igalia.com/mrego/2019/01/11/an-introduction-to-css-containment/
источник

MB

Mikhail Bashkirov in Веб-компоненты
Pavel 🦇 Malyshev
я тут больше не про CSS говорил, а про то что веб-компоненты в ShadowDOM работают медленее, а без него не будет этой полной инкапсуляции
это все лирика, интересна конкретика, скажем я могу понять что гораздо эффективнее соотнести селекторы и элементы в рамках маленького DOM, а ты о какой скорости говоришь?
источник

MB

Mikhail Bashkirov in Веб-компоненты
Serhii Kulykov
“no global scope” скрывает факт того, что CSS глобальный, я это имел в виду
не вижу там этого, речь лишь о потребительских качествах конкретного решения
источник

SK

Serhii Kulykov in Веб-компоненты
переформулирую - все решения изоляции на именах классах подразумевают “happy path”

но это уже отдельная тема
источник

PM

Pavel 🦇 Malyshev in Веб-компоненты
Mikhail Bashkirov
это все лирика, интересна конкретика, скажем я могу понять что гораздо эффективнее соотнести селекторы и элементы в рамках маленького DOM, а ты о какой скорости говоришь?
О бенчмарках, которые я лично проводил на веб-компонентах с и без shadowdom
источник

MB

Mikhail Bashkirov in Веб-компоненты
Serhii Kulykov
переформулирую - все решения изоляции на именах классах подразумевают “happy path”

но это уже отдельная тема
ни разу не сталкивался там с конфликтами на практике, так что не могу согласиться с серьёзностью твоего замечания

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

MB

Mikhail Bashkirov in Веб-компоненты
так что я бы тут тоже ставку на Shadom DOM делал в плане скорости)
источник

MB

Mikhail Bashkirov in Веб-компоненты
медленность Shadow DOM на практике не в нем самом, а в полифиллах
источник

AY

Andrey Yamanov in Веб-компоненты
Mikhail Bashkirov
медленность Shadow DOM на практике не в нем самом, а в полифиллах
Всё сильно зависит от конкретного применения. Что именно мы туда переносим, какие стили сравниваем. Shadow DOM не быстрее и не медленнее. Он имеет свой оверхед, который в некоторых случаях может компенсироваться упрощением применения селекторов, а в некоторых может вообще не компенсироваться. Для простоты можно считать, что в среднем разницы нет.
источник

PM

Pavel 🦇 Malyshev in Веб-компоненты
Mikhail Bashkirov
медленность Shadow DOM на практике не в нем самом, а в полифиллах
я тестировал без полифилов конечно же
источник

MB

Mikhail Bashkirov in Веб-компоненты
мне кажется немного нелепо обсуждать такую сложную тему на пальцах
и еще нелепее сравнивать вещи, имеющие разные потребительские характеристики
у меня была прекрасная возможность потестировать CSS-in-JS решения, предоставляющие скоупинг стилей, и ShadowDOM на реальных примерах
и во всех случаях производительность Shadow DOM была выше, зачастую в разы
источник

MB

Mikhail Bashkirov in Веб-компоненты
оверхед, которые они несут, был очевидно значительно выше
источник

PM

Pavel 🦇 Malyshev in Веб-компоненты
Andrey Yamanov
Всё сильно зависит от конкретного применения. Что именно мы туда переносим, какие стили сравниваем. Shadow DOM не быстрее и не медленнее. Он имеет свой оверхед, который в некоторых случаях может компенсироваться упрощением применения селекторов, а в некоторых может вообще не компенсироваться. Для простоты можно считать, что в среднем разницы нет.
к сожалению, это не так. тест очень простой. берем кусок html с небольшой динамикой, типа hello world. кладем его в 2-х компонентах в shadowDOM или без него. Выводим 2 списка по 10К записей и мереем
источник

AY

Andrey Yamanov in Веб-компоненты
Pavel 🦇 Malyshev
к сожалению, это не так. тест очень простой. берем кусок html с небольшой динамикой, типа hello world. кладем его в 2-х компонентах в shadowDOM или без него. Выводим 2 списка по 10К записей и мереем
Перечитай, ты тут меряешь работу JS. А я про стили. Shadow DOM может ускорить работу селекторов, а может не ускорить. Нужны совсем другие тесты, чтобы это посчитать.
источник

PM

Pavel 🦇 Malyshev in Веб-компоненты
Andrey Yamanov
Перечитай, ты тут меряешь работу JS. А я про стили. Shadow DOM может ускорить работу селекторов, а может не ускорить. Нужны совсем другие тесты, чтобы это посчитать.
так я выше писал то что я про JS
источник

PM

Pavel 🦇 Malyshev in Веб-компоненты
Pavel 🦇 Malyshev
одно лечим, другое колечим
вот тут
источник