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低,但结构清晰
             */
  • 相关阅读:
    Mysql 中的MVCC原理,undo日志的依赖
    Innodb 实现高并发、redo/undo MVCC原理
    Django restful 规范
    TCP 原理
    HTTPS建立连接的过程
    HTTP协议,Http 常用状态码
    SQL注入
    Mysql 索引问题集锦
    Mysql MyISAM与InnoDB 表锁行锁以及分库分表优化
    归并排序Python 实现
  • 原文地址:https://www.cnblogs.com/xu3241/p/13236460.html
Copyright © 2011-2022 走看看