Javascript Эффективность Вопрос: несколько getElementById () против getElementsByTagName () и циклический результат - PullRequest
2 голосов
/ 01 октября 2009

Мне было интересно, будет ли эффективнее использовать document.getElementById () n раз или использовать document.getElementsByTagName () и перебирать результаты в поисках конкретных идентификаторов элементов?

1 Ответ

5 голосов
/ 01 октября 2009

Все зависит. Сколько элементов с данными идентификаторами у вас есть? Сколько элементов с одинаковым именем тега?

Например, если вам нужны элементы с идентификаторами 1 и 3, и у вас есть:

<ul>
  <li id="1">1</li>
  <li id="2">2</li>
  <li id="3">3</li>
  <!-- Followed by 10,000 more li tags -->
</ul>

вам лучше позвонить getElementById() дважды. Но если вам нужно все, кроме ID 15, вам, вероятно, лучше сделать список и проверить ID.

Другая альтернатива - добавить класс к конкретным элементам, которые вы хотите выбрать. Затем вы можете выбирать по классам (возможно, с помощью селектора классов JQuery ), что обеспечит вам хорошую производительность во всех отношениях.

Имейте в виду, что производительность Javascript сильно различается между браузерами и даже между версиями браузеров . Лучше всего провести тестирование на ваших целевых браузерах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...