2012-03-20 2 views
1

나는 빠른 빙을 가지고 있으며 정말로 답을 찾을 수 없습니다. 내가 $('something here') 150 번을 사용하는 코드의 강타가있는 경우jQuery 선택기 효율성

, 그것은 더 효율적으로 될 것입니다 : 내가 아는

var item = $('something here') 

예쁜 바보 같은 질문하지만, jQuery를 만을 찾을 수있다으로 더 efficent 것 한 번 항목?

+4

왜 http://jsperf.com/에서 테스트를 실행하지? – j08691

답변

3

예, 결과 jQuery 객체를 저장하는 것이 훨씬 더 효율적이며 훨씬 더 빠를 수 있습니다. 선택기를 사용할 때마다 새 검색을 시작합니다. jQuery는 결과를 캐시하지 않는다. 결과 jQuery 객체를 변수에 저장하면 매번 검색을 반복해서 실행할 필요가 없습니다.

+1

참 (+1), 그러나 "항상 중요하지는 않습니다"및 "성능 테스트를 실행하십시오"로 주석을 달아야합니다. 깨끗한 코드를 먼저 작성하십시오 (보통 반복 선택자를 가지지 않음). –

+0

검색은 대개 무시할 수 있습니다. 실제 jQuery 객체가 생성 될 때마다 느려집니다. – Paulpro

+0

검색 대상에 따라 다르지만 일부 선택자는 값이 쌌으며 일부는 값 비쌉니다 (특히 브라우저가 기본적으로 할 수없는 경우) –

4

이 기사에 따르면 변수에 선택기를 할당하는 것이 더 효율적입니다. jQuery는 선택기와 일치하는 요소에 대해 DOM을 다시 검사 할 필요가 없으므로 의미가 있습니다.

http://geekswithblogs.net/renso/archive/2009/07/14/jquery-selector-efficiencycost-impact.aspx

그것은 또한 다른 팁을 제공합니다. 예를 들어 클래스 선택기 만 사용하지 마십시오. 흥미롭게도 $('#someID')과 같은 선택자는 $('div#someID')보다 빠릅니다.

+2

'$ ("# someID")'는 네이티브 함수'getElementById()'에 매핑되므로 더 빠릅니다. –

+0

아, 그건 의미가 있습니다. – dangerChihuahua007