当某些东西附加到内存中的 DOM 时,会导致浏览器重排吗?还是只有当屏幕上的像素被告知要改变回流才会发生?例如:
案例 1:一次一个附加到 DOM 的 img 元素
var parentDiv = $('#imgHolder');
var imgArray = []; // Array of img paths populated in another function
$.each(imgArray, function()
{
parentDiv.append(createImgEle(this)); // createImgEle() // returns an <img> with the right src
}
案例2:将img元素放在一个单独的数组中,然后附加到DOM中
var parentDiv = $('#imgHolder');
var imgArray = []; // Array of img paths populated in another function
var tempArray = []; // Holds the img elements until its fully populated
$.each(imgArray, function()
{
tempArray.push(createImgEle(this));
}
parentDiv.append(tempArray);
案例 3:案例 1 或 2,但默认情况下,parentDiv 设置为display:none;
并在每个循环完成后变为可见。
基本上,我想知道的是,当屏幕的像素被告知改变时,浏览器是否才开始重排?
顺便说一句,代码仅用于示例目的,而不是在生产中,所以不要因为任何逻辑错误而抨击我。谢谢你的任何建议。