querySelector(All) vs getElement(s)By


#1

В каких случаях лучше использовать querySelector, а в каких getElement(s)By?


#2

и началось перечисление всех случаев…
Встречал когда-то статю,= querySelector работает быстрей…
пользуй querySelector и не заморачивайся…


#3

Ха - экономия на спичках тут пишут обратное

Практика показывает, что в 95% ситуаций достаточно querySelector/querySelectorAll . Хотя более специализированные методы getElement* работают чуть быстрее, но разница в миллисекунду-другую редко играет роль.


#4

https://jsperf.com/queryselectorall-vs-getelementbyid/4


#5

я от одного developer-a слышал, что getElementsBy сейчас не используют


#6

Да бросте - тест концептуально с “изюминкой”
Вы хотите сказать, что у Вас на странице может быть 1M одинаковых ID “#foo
тогда, что то не так…
И да - этот прикол давно известен, что Id ищет дольше- по этой причине class пользуют.


#7

Более правильной и общепринятой практикой является доступ к элементу вызовом document.getElementById("идентификатор")


#8

😜🤣😭

Вот начало из “свеженького”,

import React from 'react';
import ReactDOM from 'react-dom';

import App from './components/App.jsx';

  ReactDOM.render(
    <App />,
    document.getElementById('root')
  );

#9

Всегда использую querySelector. Ради однообразности. Теоретически медленнее, но на практике в коде редко когда есть множественные и некешируемые обращения к DOM-му. А для малого количесва обращений к DOM-му - разница не большая будет код выполняться со скоростью 1.6 миллиардов операций в секунду или 2.5 миллиона в секунду. (это значения для FF из комментария @Paulo). Зато избегаю выбором между классами и айдишниками, проблем с дублирующимися айдишниками на странице и получаю однообразие в коде.

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