2010-08-06 1 views
7

슬라이드 (30)는 언급 :.find()가 기본 자손 선택 방법보다 빠릅니까? <a href="http://paulirish.com/2009/perf/" rel="nofollow noreferrer">Paul Irish's blog</a>에서

$('#container').find('div.robotarm')$('#container div.robotarm')

보다 더 빨리이 사실인가요입니까?

+3

의견은 아무 것도 없다고 생각합니다. 일부 벤치 마크를 작성하고 여러 번 (여러 브라우저에서 실행하는 것이 바람직 함) 결과를 확인하십시오. 이것이 최종 답변 인 IMO를 얻는 유일한 방법입니다. –

+0

https://forrst.com/posts/I_ran_a_little_speed_test_on_jQuery_selectors_Y-3mQ이 정보가 도움이 될 수 있습니다. – Kriem

답변

5

jQuery의 이전 버전 일 수 있습니다. 그러나, 식

$('#container div.robotarm') 

$('#container').find('div.robotarm') 

에 jQuery를 통해 표준화되어, $('#container div.robotarm') 느린되어야 유일한 이유 때문에 함수 호출 오버 헤드이다. 그러나 그것은 정말로 사소한 차이 일 것입니다.

해당 호출이 정규화되지 않은 경우 sizzle (Resigs CSS 선택기 엔진)을 사용하여 해당 요소를 (오른쪽에서 왼쪽으로) 조회합니다. 물론 훨씬 느려질 것입니다.

+1

누구나이를 뒷받침 할 수있는 몇 가지 문서를 인용 할 수 있습니까? 빠른 Google 검색에서 아무 것도 찾을 수 없습니다. –

2

의견을 요청한 것이므로 중요하지 않습니다.

DOM의 특정 구성에 따라 브라우저에서 다른 브라우저보다 빠르게 실행되는 경우를 생각해 볼 수 있습니다. 머리카락을 나눌 필요가 없습니다.

1

ID로 검색 할 때만 정확합니다.

그러나 우리는 태그 이름으로 검색 할 때 후자가 querySelector()를 사용하기 때문에 $('div').find('p')이보다 느린 $('div p') 현대적인 브라우저에서 다른 결과를 반환합니다.

관련 문제