Khi một thứ gì đó được nối vào DOM trong bộ nhớ, điều đó có làm cho trình duyệt bị hỏng không? Hoặc là nó chỉ khi các điểm ảnh trên màn hình được nói để thay đổi rằng reflow xảy ra? Ví dụ:Khi một thứ gì đó được nối vào DOM trong bộ nhớ, điều đó có làm cho trình duyệt bị hỏng không?
Trường hợp 1: yếu tố Img nối vào DOM một lúc
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
}
Trường hợp 2: yếu tố Img được đặt trong một mảng riêng biệt và sau đó nối vào 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);
Trường hợp 3: Hoặc là 1 hoặc 2 nhưng theo mặc định, parentDiv được đặt thành display:none;
và hiển thị sau mỗi vòng lặp được thực hiện.
Về cơ bản, điều tôi muốn biết là, trình duyệt chỉ có bắt đầu chỉnh lại khi các pixel của màn hình được thông báo thay đổi không?
Btw, mã chỉ dành cho mục đích ví dụ và không phải trong sản xuất, do đó đừng làm tôi thất vọng vì bất kỳ lỗi logic nào. Cảm ơn vì bất cứ lời khuyên nào.
Trong trường hợp 1, bạn sẽ được vẽ lại cho mỗi phụ lục và trong trường hợp 2 bạn sẽ vẽ lại. Trường hợp 3 tôi không chắc chắn tbh. Tôi muốn đi với trường hợp 2 –
Tôi tự hỏi những gì khác biệt giữa các trình duyệt sẽ có với điều này mặc dù. IE có xử lý nó khác với nói, Chrome hoặc Firefox không? –
Thực hành chung tốt nhất (dựa trên nhiều câu trả lời ở đây và trên các diễn đàn jQuery, và kinh nghiệm của riêng tôi) là chỉ thực hiện một phụ lục cho DOM. Cho dù điều đó có nghĩa là phụ thêm một mảng cùng một lúc hay tạo Phân đoạn DOM và chắp thêm nội dung của Phân đoạn DOM không quan trọng. Dù bằng cách nào, bạn chỉ chạm vào DOM một lần. –