I have to create seven div elements in one hit – container A which contains A1, A2, A3 & A4, and then A2a & A2b within A2. I am using multiple calls to this little function:
function u1(t,i,c,p){ // type,id,class_name,parent_id
var tag=document.createElement(t); // Create node to be appended
tag.id=i;
tag.className=c;
document.getElementById(p).appendChild(tag);
}
My question: Is there is a more time-efficient way to bundle the seven together, and then just do one DOM append? Or is innerHTML a good option?
Thanks 🙂
You could just use
.innerHTML. An alternative would be to use a document fragment:Document fragments are a bit slow to create, but can save performance in the long run. In this case, for example, you go from 7 DOM insertions to just one. (Anything involving the DOM is slow in JavaScript.)
If you want to benchmark your specific use case using both approaches, create a jsPerf test case.