Мне интересно, какой из следующих запросов jQuery будет быстрее.Я ищу, чтобы соответствовать любые теги span, которые имеют либо атрибут src, либо атрибут data-src.
var a = $('span[src],span[data-src]');
var b = $('span').filter('[src],[data-src]');
У меня ощущение кишки (б), но могут быть и оптимизмы, о которых я не знаю.
Спасибо.
ОБНОВЛЕНИЕ:
Основано на быстром тесте с элементами 100 x span[src]
, 100 x span[data-src]
и 100 x span
: (a) результат был примерно в 4-8 раз быстрее в зависимости от браузера.В IE8 это было намного быстрее (примерно в 50 раз), а в IE6 / 7 - примерно одинаково.
Что мне интересно, так почему это быстрее?
В случае (a) jquery делегирует весь запрос селектора нативному querySelectorAll
, где доступно.Таким образом, то, что выглядит как более медленный запрос, на самом деле очень быстро в современных браузерах.