У меня большие изменения в производительности, в зависимости от того, как я выражаю свои селекторы. Например, посмотрите на эти 2 селекторы, которые отбирают те же элементы:Производительность селектора jQuery
A) someTableRow.find("td.someColumnClass").find("span.editMode").find("input")
B) someTableRow.find("td.someColumnClass span.editMode input")
Я бы ожидать B), чтобы быть быстрее, так как есть только один звонок, но на самом деле я нахожу A) выполняет около В 8 раз быстрее. Я понятия не имею, почему у кого-то есть понимание? Спасибо
Спасибо crescentfresh, имеет смысл. На самом деле мы просто перешли к 1.3.2 с 1.2.6, и я был смущен, почему некоторые ранее прилично быстрые селектора стали медленнее (большинство из них были быстрее). Вопрос - который быстрее, проходит в контексте в каждой точке или использует вызовы с цепочкой()? – JonoW
Они эффективно эквивалентны. $ ('foo', 'bar') фактически перенаправляется в $ ('bar'). find ('foo') в животе jQuery. Я полагаю, что вызов find() явно сохраняет пару циклов процессора, но нечего мигать. Сделайте то, что наиболее читаемо для вашей команды. Я нахожу, что нахожу очень читаемым;) –
Прохладный, я чувствую, что find() более интуитивно понятен для меня, поэтому будет использовать это – JonoW