js 世界

js DOM中三种动态创建元素的区别

2022-07-21  本文已影响0人  前端末晨曦吖

document.write()

直接将内容写入页面的内容流, 但是文档执行完毕,  则会导致页面的全部重绘。

具体用法:

 <body>
  <button>点击事件</button>
  <p>abc</p>
  <script>
    // 三种创建元素的方式区别:
    var btn = document.querySelect('button');
    btn.onClick = function() {
      document.write('<div>123</div>')
    }
  </script>
 </body>

innerHTML

是将内容写入DOM  某个节点,  不会导致页面的重绘。
innerHTML  创建多个效率更高, 结构稍微复杂。
不同浏览器下,  innerHTML 效率要比createdElement 高
<script>
  function fn() {
    var d1 = +newDate();
    var str = "";
    for(var i= 0; i< 1000; i++) {
       document.body.innerHTML += "<div style = "width: 100px; height: 2px; border: 1px solid blue"></div>"
    }
    var d2 = +new Date();
    console.log(d2 - d1);
  }
</script>

document.createElement()

创建多个元素效率稍微低一些,  但是结构更加清晰。
<script>
    function fn () {
       var d1 = +new Date();
       for(var i = 0; i<1000; i++) {
         var div = document.createdElement('div');
         div.style.width = "100px";
         div.style.height = "2px"
         div.style.border = "1px solid red";
         document.body.appendChild(div)
       }
 
       var d2 = +new Date();
       console.log(d2 - d1);
    }
 </script>
上一篇下一篇

猜你喜欢

热点阅读