文章目录
最近看到一道海量渲染的面试题的答案,看到他用的是createElement
然后appendChild
感觉无法理解为什么要这样使用,难道innerHTML
比这种方法的性能差吗?
由此自己做了一些实验
自测代码如下:
1 |
|
最后得出的结论是innerHTML
的方法明显会比 createElement
这种 办法好,就算是先appendChild
到虚拟节点里面,也仍然性能不好。那为什么那些大佬们会用第二种办法?难道就是为了使用createDocumentFragment
这个API?
那么究竟createElement
会比innerHTML
好在哪里呢?
看到一位大佬的答案是因为觉得拼接字符串丑陋。。。emmmmmm
createElement
在创建节点后就能直接事件监听事件,可是这种大量渲染,使用事件委托不是更完美吗?何必每一个都要绑定事件监听?
1 | var oButton = document.createElement("input"); |