Jon*_*Jon 9 html javascript dom android-webview
我经常getElementById("id1");在我的方法中使用该方法.我用它来查找HTML中的某些元素.我想知道如果每次都必须搜索整个DOM,我是否需要关注我使用它的程度.
这种方法有什么用?它是解析DOM并在找到它时返回元素,还是以某种方式将所有这些值编入索引,因此能够更快地返回?
PS我一般对这个方法感到好奇,但如果有任何不同,我会使用Android WebView.
Lao*_*jin 11
getElementById 非常快,你不必担心性能.
如果您反复使用相同的ID(以及反复使用),则可能需要对其进行缓存.性能增益可忽略不计:
var myId = getElementById("myId");
myId.operation1();
myId.operation2();
myId.andSome5000MoreCalls();
Run Code Online (Sandbox Code Playgroud)
检查这个SO答案的一些基准.Mike发布的结果是:
IE8 getElementById:0.4844 ms
IE8 id数组查找:0.0062 msChrome getElementById:0.0039 ms
Chrome ID阵列查找:0.0006 msFirefox 3.5与chrome相当.
实际上getElementById是访问DOM中元素的最快方法.索引取决于特定的浏览器,但这是它的基准:
http://jsperf.com/getelementbyid-vs-everyone-else