실행 시간은 document.getElementById
입니까? 대부분 대수 인 O(log(n))
이며 DOM은 트리이므로 n은 DOM의 요소 수입니다. 또한 O(1)
으로 상수 일 수 있습니다. HTML 문서의 구문 분석 중에 ID가있는 모든 요소가 해시에 저장되는 경우 나는 개선 된 DOM 액세스로 새로운 자바 스크립트 엔진을 사용하여 브랜드를 홍보하는 브라우저를 계속 들었으므로 모든 브라우저에서 실행 시간이 동일한 지 확실하지 않습니다.document.getElementById 실행 시간
물어 이유 만약 내가 Mozilla's WebGL tutorial에이 글을 읽을 때문에 :
는우리가 여기서 할 첫 번째 일은 캔버스라는 글로벌 변수에에게 를 보관 한 캔버스에 참조를 얻을 수있다. 캔버스를 반복적으로 참조 할 필요가없는 경우 은이 값을 저장하지 않아도되고 은 로컬 변수 또는 개체의 멤버 필드에 저장할 수 있습니다.
$ ('canvasId')를 수행하는 것이 모질라가이 경고를 한 경우 상수 조작보다 저렴하지 않을 수 있습니다.
$('id').writeAttribute('foo', 'bar');
console.info($('id').getWidth());
$('id').absolutize();
에 : 어쩌면 내가에서 내 코드를 다시 작성해야 해당 요소를 여러 번 액세스해야 할 때
var element = $('id');
element.writeAttribute('foo', 'bar');
console.info(element.getWidth());
element.absoltize();
제공하신 견적에 경고가 표시되지 않습니다. 변수를 보유 할 수도 있고 가질 수도 있다고 설명합니다. 한 함수 내에서 확실히 지역 변수를 사용 하겠지만 전역 변수는 사용하지 않는 것이 좋습니다. 그러나 확실히 두 번째 예제는 더 빠릅니다 (문제는 얼마나되는지에 대한 것입니다). –
관심 분야와 관련된이 게시물을 찾을 수 있습니다. http://stackoverflow.com/questions/2711303/javascript-getelementbyid-lookups-hash-map-or-recursive-tree-traversal – jbrookover