美文网首页
DOM操作性能注意

DOM操作性能注意

作者: liujunyan | 来源:发表于2016-10-19 16:38 被阅读0次

减少对dom的操作

function innerHTMLLoop1() {  
    for (var count = 0; count < 10000; count++) {     
        document.getElementById("test").innerHTML += "增加内容";   
    } 
}
function innerHTMLLoop2() {
  var content = "";    
    for(var count = 0; count < 10000; count++) {      
        content += "增加内容";    
    }    
    document.getElementById("test").innerHTML += content;  
}

两个函数做的事一样,但第二个函数做的dom操作明显比第一个少

循环操作前先缓存集合的长度

for(var i = 0, len = allDivs.length; i < len; i++) {
    // todo somethings
}

尽量使用原生的api去操作元素

以下是一些常用的api

Paste_Image.png

上图列举的所有属性能被FF,safari,chrome,opera所支持,ie6-8只支持children。
遍历children比childNodes更快,因为集合项少了。HTML源码中的空格实际上是文本节点,但他们不包含在children中。

访问数组要比访问html集合的元素快,获得html集合后可以用数组缓存

相关文章

网友评论

      本文标题:DOM操作性能注意

      本文链接:https://www.haomeiwen.com/subject/jpqxuttx.html