Jquery: что быстрее? .text () или .attr ('id')? - PullRequest
1 голос
/ 19 января 2011

просто интересно, какой из них будет быстрее?

if ( $(this).text() == 'Test' )
{ 
    ...
}

или

if ( $(this).attr('id') == 'Test' )
{
    ...
}

или есть более быстрый путь?то же самое?

спасибо

Ответы [ 3 ]

3 голосов
/ 19 января 2011

Самым быстрым будет this.id === 'Test', оптимизированная версия $(this).attr('id') == 'Test'.

Обратите внимание, что здесь используется свойство объекта, а не attr, и оператор точного равенства ===.

Обратите внимание, что проверка идентификатора будет намного, намного быстрее, потому что text() (в зависимости от возможностей вашего браузера) внутренне зацикливается на каждом дочернем узле и извлекает его текстовое значение.Проверка идентификатора требует проверки только одного атрибута.

1 голос
/ 19 января 2011

Чтобы добавить к ответу одиночного дня, я бы указал, что правильный ответ, скорее всего, "это не имеет значения". Если это произойдет, то вы, вероятно, не должны запускать такой критичный для производительности код в браузере посетителя, и у них могут возникнуть опасения по поводу использования процессорного времени таким образом; помните, (на стороне клиента) JavaScript не работает на вашем компьютере!

0 голосов
/ 19 января 2011

Простой тест показывает, что они почти одинаково быстры. text() кажется немного быстрее.

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