: gt (0) против: не (: первый) против .slice (1) - PullRequest
7 голосов
/ 27 февраля 2012

До этого я всегда использовал селектор gt для выбора всех элементов, кроме первого.Теперь я нашел решение, которое кажется мне более элегантным.Нужно использовать :not(:first) вместо :gt(0).
Есть ли какие-либо различия в производительности этого селектора и какой из них вы предлагаете использовать?

РЕДАКТИРОВАТЬ: Как уже упоминалось, ФеликсКороль, .slice(1) - это еще один вариант выбора всех элементов, кроме первого.Так что же быстрее?

Ответы [ 2 ]

10 голосов
/ 27 февраля 2012

Время немного профилирования!Учитывая пустую страницу, кроме десяти <span> с, кэшированных в переменную с именем spans и 10000 итераций, я получаю 824 мс для spans.filter(':gt(0)') и 1276 мс для spans.not(':first').

Рисунок, полученный с помощью console.time() иconsole.timeEnd() в Firefox 11.

Учитывая, что мне нужно было сделать 10 000 итераций, чтобы достичь отметки 1 с, я полагаю, что это не имеет значения?

3 голосов
/ 27 февраля 2012

Написал для этого тест jsperf:

http://jsperf.com/select-all-but-first-42

Оказалось, что метод срезов самый быстрый!

Есть еще один тест на jsperf для того же требования:

http://jsperf.com/select-all-but-first

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