Мне интересно, насколько эффективен доступ к DOM через document.getElementById
или document.querySelctor
с точки зрения производительности?Альтернатива, которую я рассматриваю, - это один раз получить доступ к элементам, let x = document.getElementById('x');
, а затем использовать эту переменную вместо повторяющихся запросов DOM.
Я думаю, что использование переменной будет быстрее, но мне интересно, если этот тип оптимизацииавтоматически обрабатывается для нас большинством движков JS.
Кроме того, я рассматриваю возможность перехода на использование пользовательских HTML-элементов с shadowRoot
s.Будет ли теневой корень действовать как JS-кеш для слоя визуализированных элементов DOM;то есть это сделает прирост производительности для кэширования элементов DOM немым?Онлайн-источники (такие как [1]) объясняют, что теневой корень предназначен для инкапсуляции и, в отличие от виртуального dom, не помогает в пакетном обновлении HTML.Но помогает ли это в доступе к элементам HTML?
Для контекста доступ будет происходить для пары десятков элементов каждый раз, когда пользователь взаимодействует с определенными полями ввода, и они не находятся в таймере / цикле.
[1] Является ли теневой DOM быстрым, как виртуальный DOM в React.js?