Это будет сильно зависеть от браузера, поэтому вам нужно проверить, чтобы быть уверенным.
Поскольку 'a[id|="dash"]'
(обратите внимание, я удалил -
) , похоже, является допустимым селектором querySelectorAll()
, любые браузеры, поддерживающие этот метод (включая IE8), должны иметь очень хорошую производительность.
Поскольку вы включаете tagName
, браузеры, которые не поддерживают querySelectorAll()
, будут (я считаю) использовать getElementsByTagName()
, поэтому фильтр будет применяться только к элементам <a>
, которые он найдет.
Это также должно помочь, если вы можете ограничить запрос более узким контекстом, чем document
.
Также обратите внимание, что в соответствии с этим тестом , производительность getElementById()
не очень впечатляет в IE6 и IE7. И снова IE8 поддерживает querySelectorAll()
, хотя было бы неплохо убедиться, что он преуспеет с этим конкретным селектором. В противном случае запрос по умолчанию будет использовать движок Sizzle.
Вот тест с использованием этого селектора напрямую через querySelectorAll()
. Вы можете запустить его в разных браузерах, чтобы увидеть, где он поддерживается.
Обратите внимание также, что getElementsByClassName()
не поддерживается до IE9, поэтому я сомневаюсь, что использование класса предложит какие-либо существенные улучшения производительности по сравнению с 'a[id|="dash"]'
. Исключением является Firefox3, который поддерживает getElementsByClassName()
, а не querySelectorAll()
.