2011-11-24 2 views
2

저는 현재 작업중인 응용 프로그램에서 jquery UI와 jqgrid를 상당히 많이 사용하고 있습니다. 대부분의 예제에서 볼 수 있듯이이 컨트롤은 jquery selector를 사용하여 id: $("#elementid")으로 요소를 찾아 액세스합니다.jQuery - 성능 액세스 요소

내 질문은, JQuery와 반복이 작업을 수행 할 수있는 충분한 성능을 제공하거나 처음 액세스 할 때이 요소에 대한 참조를 저장하는 더 나은 방법입니다 않습니다이다 : var elementName = $("#elementid");

을 대신 참조를 다시?

답변

1

JQuery for ID는 Javascript의 getElementById()와 동일합니다.

직접 참조를 사용하여 here을 읽을 수 있으므로 DOM 트리에서 개체를 얻기 위해 매번 검색하는 것보다 빠릅니다.

IE8에서 getElementById : 0.4844 MS , IE8 번호 어레이 조회 : 0.0062 MS

크롬에서 getElementById : 0.0039 MS 크롬 ID 배열 조회 : 0.0006 MS

이들은 10에 대한 결과이다 000 얻을. 벤치 마크에 대한 전체 코드를 보려면 링크를 클릭하십시오.

+0

10.000의 룩업을위한 반 밀리 초는 내 세계에서 성능 향상으로 간주되지 않지만 그 결정은 전적으로 작성자에게 달려 있습니다. – David

+0

글쎄, 그것은 수학적입니다. 당신이 숫자로하는 일은 내가 생각하기에 개인적인 것입니다.) –

+0

제 생각으로는별로 중요하지 않은 것 같아요. 전역 변수를 가진 코드를 쓰레기로 만들어내어 일부 요소를 참조하지 않아도됩니다. 감사. – zaq

0

정의 및 변수를 재사용하는 것은 약간 빠른 아마와 "모범 사례"로 간주 될 수 있지만, 대부분의 응용 프로그램에 충분한 확실히 빠른 네이티브 Element.getElementById$('#id')지도. 수천 개의 조회에 대한 테스트를 수행 한 경우에도 인간 마음에 눈에 띄는 차이는 없습니다.

저는 결국 코딩 스타일의 문제라고 말하고 싶습니다.