jQuery는 개체를 작성하고 반환하는 함수입니다. 그 부분은 매우 비싸지 만 실제 DOM 조회에는 공정한 작업이 필요합니다. 오버 헤드는 getElementById 또는 getElementsByClassName과 같은 기존 DOM 메소드와 일치하는 간단한 쿼리에 비해 그리 높지 않습니다 (IE8에는 존재하지 않으므로 실제로는 느려집니다). 그렇지만 차이점은 차이가 있습니다 (DOM 액세스를 래핑하는 객체를 작성하는 것입니다. 메서드) 및 거의 작업 (기존 개체 참조). 선택기 결과를 재사용 할 계획이라면 항상 캐시하십시오.
또한 사용중인 xpath 항목은 일부 브라우저에서 실제로 비쌀 수 있습니다. 예, 확실히 캐시 할 것입니다.
물건은 조심 : IE8 이하에서만 클래스와 ID를하지 않고 JQ PARAMS의
- 긴 시리즈
- 선택기 과감한 위해 (태그 이름의 예를 들어 'div.someClass'를 추가) 개선 - 아래 IE8과 당신이 단지
(아마이 좋아을 처리 할 새로운 브라우저의 많은) 클래스를
XPath는 스타일 쿼리를 사용하면 오히려 빠른 네이티브 메소드를 사용하는 것보다 인터프리터 수준에서 HTML의 모든 조각을 공격한다 선택기를 작성할 때 마크 업을 얻으려면 얼마나 많은 마크 업을 고려해야하는지 고려하십시오. 특정 ID의 특정 클래스의 div 만 원할 경우, $ ('div.)가 아닌이 $ ('# theID div.someClass ') 중 하나를 수행하십시오.someClass ');
하지만 업무 회피 원칙에 상관없이 두 번 이상 사용하려는 경우 가치를 캐시하십시오. 가능한 한 반복적 인 요청으로 DOM을 괴롭히지 마십시오.
예, 로컬 변수 또는 속성 조회는 jQuery 객체를 만들고 DOM을 선택하는 것보다 훨씬 빠릅니다. –
... "요소"라는 단어를 응용 프로그램에서 사용하는 것으로 보이고 "태그"라는 단어를 사용하여 DOM 요소를 나타 내기 때문에 다소 혼란 스럽습니다. 전 전적으로 당신을 따르고있는 것이 아닙니다. –
@amnotiam 그래 무슨 뜻인지 이해해 ... div "tag"는 다음과 같이 보입니다 :