Kỹ thuật nào dưới đây tốt hơn từ trải nghiệm người dùng?JavaScript: Thêm trẻ em vào phần tử
Trong cả hai ví dụ, giả sử rằng thumbContainer
được đặt thành giá trị trả lại là document.getElementById('thumbContainer')
và new Thumbnail(thumb).toXMLString()
trả về một chuỗi có đánh dấu XHTML trong đó.
A) Đơn giản chỉ cần +=
với thumbContainer.innerHTML
:
for (thumb in thumbnails) {
thumbContainer.innerHTML += new Thumbnail(thumb).toXMLString();
}
B) Hoặc chuyển đổi new Thumbnail(thumb).toXMLString()
đến các yếu tố DOM và sử dụng appendChild
?
for (thumb in thumbnails) {
var shell = document.createElement('div');
shell.innerHTML = new Thumbnail(thumb).toXMLString();
for (i = 0; i < shell.childElementCount; i++) {
thumbContainer.appendChild(shell.children[i]);
}
}
Tôi đã sử dụng cả hai và nhận được khiếu nại từ Firefox rằng tôi có tập lệnh chạy dài và tôi có muốn dừng không?
Vòng lặp nào ít chặt chẽ hơn, điều này sẽ cho phép giao diện người dùng cập nhật khi các phần tử mới được thêm vào DOM?
Tôi hy vọng rằng ví dụ của bạn không hoạt động, vì 'Hình thu nhỏ # toXMLString' * trả về một chuỗi có đánh dấu XHTML trong đó *. Vì vậy, tên thẻ được cung cấp trong 'document.createElement (htmlCode)' không phải là tên hợp lệ. – yckart