我刚刚在writing fast memory efficient javascript上阅读了一篇文章,并在“最小化回流”一节中发出了关于执行个别DOM附加操作的提醒:
function addDivs(element) {
var div;
for (var i = 0; i < 20; i ++) {
div = document.createElement('div');
div.innerHTML = 'Heya!';
element.appendChild(div);
}
}
在此功能之后,作者写道:
“只需将每个新div直接附加到元素就可以触发20次回流。”
所以作者没有说它确实如此。由于我大量使用d3.js,我开始查看github上的源代码,以检查他们是否对reflow
或DocumentFragment
的使用有任何评论(尽管可能用其他技术实现。)
我的问题是:有没有人知道d3.js是否采用任何技术来减少回流,还是将优化留给浏览器?
感谢。