zoukankan      html  css  js  c++  java
  • 三种动态创建元素的区别----关于Dom

      /* 三种动态创建元素的区别 */
            // 1 document.write()
            // 特点 是直接将内容写入页面的文档流,但是文档流执行完毕,则它会导致页面全部重绘  
            var btn = document.querySelector('button');
            btn.onclick = function() {
                document.write('<div>123</div>')
            }
            //2 element.innerHTML的方式
            var div = document.querySelector('div')
            for(var i=0; i < 100; i++){
                div.innerHTML += '<a href="#">百度</a>'
            }
            //执行效率极低,主要是因为使用了大量的字符串拼接,内存中需要重新开辟空间

            //3 document.creatElement()
            for(var i=0; i<100; i++){
                var a = document.createElement('a');
                div.appendChild(a);
            }
            // 执行效率高  比通过innerHTML方式好很多    下面是重点  下面是重点    下面是重点


            /* 接下来剧情反转的时刻到来 */

            var arr = [];
            for(var i=0; i<100; i++ ){
                arr.push('<a href="#">百度</a>');
            }
            div.innerHTML = arr.join('');

            //这种方式 执行效率更高


            /* 总结一下
                 1,document.write()   会导致页面重绘,不建议使用
                 2,inner.HTML 创建多个元素是效率会更高(不拼接字符串,采取数组形式拼接),但结构稍微复杂
                 3,createElement() 创建多个元素效率比innerHTML低,但结构清晰
             */
  • 相关阅读:
    HDU 1501 Zipper(DFS)
    HDU 2181 哈密顿绕行世界问题(DFS)
    HDU 1254 推箱子(BFS)
    HDU 1045 Fire Net (DFS)
    HDU 2212 DFS
    HDU 1241Oil Deposits (DFS)
    HDU 1312 Red and Black (DFS)
    HDU 1010 Tempter of the Bone(DFS+奇偶剪枝)
    HDU 1022 Train Problem I(栈)
    HDU 1008 u Calculate e
  • 原文地址:https://www.cnblogs.com/xu3241/p/13236460.html
Copyright © 2011-2022 走看看