2011-02-17 3 views
1

jQuery가 선택기 성능을 높이기 위해 DOM에 인덱스를 작성하는지, 아니면 요소를 선택할 때마다 DOM 라운드를 반복/반복하는지 궁금합니다.jQuery는 성능을 높이기 위해 DOM에 인덱스를 사용합니까?

필자는 성능에 민감하고 일반적인 js/DOM에서는 쉽게 조작 할 수 있으며 jQuery 선택기를 사용하면 좀 더 복잡하게 조작 할 수 있다는 추론을하고 있습니다. 내가 js 방식으로 해본다면 나 자신을 걷어 찼다. 그러나 jQuery가 더 빨리 실행될 수 있다는 것을 알게되었다.

답변

2

jQuery는 내가 아는 한 모든 인덱싱을 수행하지 않는다. 항상 지정된 셀렉터를 파싱하고 DOM을 탐색합니다. 물론 셀렉터의 속도를 높일 수있는 방법이 있습니다. 태그 이름이나 ID를 지정하면 많은 도움이됩니다. 일부 팁에 대해서는 this 프리젠 테이션을 확인할 수 있습니다.

저는 여러분이라면 jQuery와 바닐라 DOM 트래버스를 사용하여 두 개의 작은 프로토 타입을 만들 것입니다. 그런 다음 jQuery 성능이 요구 사항을 충족시키는 지 여부를 벤치마킹 한 후에 결정할 것입니다.

+0

이것은 완전히 사실이 아닙니다. jQuery는 DOM을 "인덱싱"하지 않지만 필요 이상으로 트래버스하지는 않습니다. 그것은 통과를 피하기 위해 조회를 사용할 수있는 DOM API (* gEBI, gEBTN, QSA *)를 사용합니다. – galambalazs

0

경쟁 할 수없는 jQuery 코드는 없습니다. 동일한 DOM API를 사용합니다. 대부분의 경우 jQuery보다 훨씬 뛰어난 성능을 발휘할 수 있습니다. 그것이 당신을 위해 더 쉬운 경우에, definetely 그것을 위해 가십시오!

관련 문제