ID 목록이 작고 (약 10), HTML 페이지에서 해당 요소를 가져오고 싶습니다.GetElementById vs Dom iteration
나는 각 ID에에서 getElementById()를 사용 하는가, 또는 나는 그렇게처럼 DOM을 반복 할 수 있습니다 :이 작업을 수행하는 가장 빠른 방법은
for (var i = 0; i < element.childNodes.length; i++)
{
var childNode = <HTMLElement>element.childNodes[i];
if (this.Ids.indexOf(node.id, 0) >= 0)
this.collection.setValue(node.id, <HTMLInputElement>node)
if (childNode.childNodes.length > 0)
this.iterateHtmlNodes(task, childNode);
}
- ?
- 가장 좋은 방법은 무엇입니까?
- 가져올 요소의 수가 많으면 (> 100) 어떻게합니까?
저는 TypeScript를 사용하고 있습니다.
iterating is madness! 'getElementById'는 네이티브 메소드에 대한 단일 함수 호출입니다. 수동으로 반복하는 것보다 12 배 빠릅니다. – Christoph
그리 빠르지는 않습니다. * getElementById는 모든 브라우저에서 고도로 최적화 될 것이라고 생각하지만 실제 테스트를 통해 루프보다 빠르다고 확신 할 수 있습니다. JavaScript 루프는 요즘 대부분의 엔진에서 고도로 최적화되어 있습니다. 적은 수의 요소와 평평한 DOM 트리의 속도가 비슷하다는 것은 사실 일 수 있습니다. –
내가 만든이 테스트를 확인해보십시오. [link] (http://jsperf.com/getelementsbyclassname-vs-iteration) – ThunderDev