Если у меня есть узел, как это:Является ли таблица хэшей быстрее, чем document.getElementById?
<!-- lots of HTML here (including lots of nest unordered lists) -->
<span id="spn123">Test</span>
<!-- lots of html here -->
похороненных под большим количеством уровней HTML, и я также иметь JavaScript хэш-таблицу, как это:
[
/* lots of nodes here */
{ 123 : 'Test' }
/* lots of nodes here */
]
Тогда было бы быстрее использовать
document.getElementById('spn123').innerText;
или
data(123)
Я бы предположил, что оба обработаны браузером изначально и очень оптимизированы, но будет ли последний быстрее из-за его плоской структуры и отсутствия дополнительного раздувания DOM?
Спасибо!
Бенчмарк. Это будет зависеть от * конкретных * DOM и JS-реализаций. В конце концов, это не имеет значения: если сам алгоритм, вероятно, должен быть пересмотрен. (Оба эти варианта использования были хорошо оптимизированы. Кроме того, объекты JavaScript - это * не * хэш-таблицы, они являются картами. Реализации * могут * выбирать использовать хэширование внутри себя.) – user2864740
Разница будет тривиальной, если вы не говорите о миллиардах операций. Если вы говорите о миллиардах операций, вы, вероятно, делаете что-то странное. – Pointy
На все вопросы, связанные с производительностью, следует ответить, проверив хорошо спроектированные тесты, которые точно определяют, что вам нужно в браузерах, о которых вы им заботитесь. Все остальное - чистая спекуляция. – jfriend00