Хорошо или плохо для производительности браузера иметь много Shadow DOM? - PullRequest
0 голосов
/ 12 марта 2020

Теневые DOM позволяют нам создавать независимые DOM-деревья внутри наших документов, которые имеют свое собственное дерево узлов, (более или менее) изолированное управление стилями и, в некотором смысле, только «визуализируются» в родительское дерево DOM.

Меня интересует влияние производительности на большие масштабы. Хорошо или плохо иметь много Shadow DOMs / Shadow root на странице, в отличие от наличия всего в одном большом документе?

С одной стороны, я думаю, что браузеры могут выиграть от меньших (под) Деревья DOM и меньшее количество стилевых правил, которые им приходится оценивать, когда они визуализируют содержимое изолированного Shadow DOM, которое содержит только узлы и стили, которые действительно релевантны для его содержимого. Это может оказать положительное влияние на вычислительные усилия.

С другой стороны, замедлит ли браузер усилия по дополнительным «документоподобным» метаданным или «объединению» деревьев DOM во время рендеринга или значительно увеличить использование памяти?

1 Ответ

2 голосов
/ 12 марта 2020

Вы попали в Преждевременная оптимизация l oop. Миллион узлов с или без ShadowDOM не имеет значения.

И, если вы хотите подумать о производительности, тогда беспокойтесь о:

  1. Минимизация доступа к DOM - Используйте Virtual DOM или Incremental DOM
  2. Предотвращение операций, вызывающих повторные потоки в браузере в критических циклах
  3. Предотвращение вычислений Heavy в пользовательском интерфейсе / основном потоке
...