Какой стиль CSS Selector более эффективен? - PullRequest
0 голосов
/ 28 сентября 2010

Вдохновленный Помогите понять JQuery Attribute Equals Selector Вопрос:

Что из этого более эффективно?

$('#FOO element.BAR[attr=BAZ]')

или

$('#FOO element[attr=BAZ].BAR')

И да, мы могли бы опустить исходный селектор #FOO, но этот вопрос касался именно этого, так что ... sobeit

Кроме того, хотя мой синтаксис выше использует jQuery, это только потому, что он былмне удобно оставить это так. Тот же самый синтаксис был бы найден в документе CSS, не так ли? очевидно, что это не то же самое, давайте тогда ограничим его jQuery?

1 Ответ

0 голосов
/ 28 сентября 2010

Довольно быстрая и грязная демонстрация показывает расхождение в 1-5 мс между двумя подходами и несовместимо между тем, что быстрее. Я полагаю, что тест может быть значительно улучшен.

В любом случае, более десяти загрузок страниц (время указывается в миллисекундах):

page load     |       $('#foo td.one[title=baz]')     |        $('#foo td[title=baz].one')
--------------+---------------------------------------+---------------------------------------
1             |                 9                     |                    8
2             |                 7                     |                    6
3             |                 8                     |                    8
4             |                 8                     |                    8
5             |                 8                     |                    7
6             |                 8                     |                    8
7             |                 7                     |                   11
8             |                 8                     |                    7
9             |                 7                     |                    7
10            |                 8                     |                    8
--------------+---------------------------------------+----------------------------------------
total         |                78                     |                   78

Итак ... насколько я могу заключить что-нибудь из этого, получается, что $('#foo td.one[title=baz]') на незначительно быстрее, но в среднем они получаются примерно одинаковыми.

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