Обычно плохая идея использовать сложные селекторы для поиска элементов, поскольку они тесно связывают функциональность скрипта с макетом и представлением документа.Следует использовать более простую стратегию, например, использовать идентификаторы, классы или элементы группировки в документе.
Если вы сделаете это, то проанализируете свои требования, вы можете обнаружить, что вам нужна только пара простых селекторов.В этом случае стандартные методы доступа к элементам DOM могут выполнять 90% работы, и вам просто нужно добавить немного фильтрации.например, «#id» - это просто getElementById (именно это jQuery / Sizzle фактически использует для этого селектора), а «.myClass a» может использовать довольно простую функцию getElementsByClassname (у большинства браузеров есть одна встроенная) с фильтром для элементов A.
Конечно, такие функции могут сначала проверить поддержку qSA и использовать ее, если она доступна.
Обратите также внимание на то, что уже имеется несколько доступных коллекций документов, которые могут быть очень эффективными в использовании, итакже ранние коллекции DOM (такие как getElementsByTagName) были также живы.Я почти уверен, что qSA возвращает статические коллекции, потому что именно это делали библиотеки javascript с селекторами.
Во всяком случае, пища для размышлений.