美文网首页
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