Используется ли $("#vacations").find("li").last()
лучше, чем $("#vacations li:last")
?
История и мои мысли:
Я играл с приятным интерактивным попробовать jQuery tutorial, и в одной из задач говорится:
Когда вы просматриваете свой код, вы замечаете, что кто-то другой выбирает последний отпуск с: $( "# vacations li: last" ). Вы смотрите на это, и вы думаете: "Траверс будет делать это быстрее!" Вы должны действовать по этим мыслям, реорганизовать этот код, чтобы найти последний li в #vacations, используя обход вместо.
Почему я так думаю? Для меня использование селекторов выглядит немного выше, чем пересечение. На мой взгляд, когда я указываю селектор, это зависит от jQuery, как лучше получить единственный результат, который мне нужен (без необходимости возврата промежуточных результатов).
Что это за дополнительные накладные расходы на использование композитных селекторов? Это потому, что текущая реализация логики селекторов просто анализирует строку и использует API обхода? Разбирает строку, которая замедляется? Есть ли вероятность того, что будущая реализация будет использовать тот факт, что ему не нужно возвращать промежуточные результаты и будет быстрее, чем обход?