I am testing the speed of different methods to dynamically add html elements to the DOM. I’ve build a tester here (code is working version, so pretty sloppy). The results are (very) different for different browsers with Chrome getting all the points for speed, and Opera a good second – but that’s not the question here.
In Firefox I detected a problem with clearing a div (from it’s childNodes). When some 50.000 div elements are added, it takes ages to clear, using just
[div].innerHTML = '';
What is going on here? Did firefox implement some intrinsic garbage collection method for this?
While I am not sure about the innerHTML = ” you left out one possibly fast appoach using DocumentFragments for inserting into the DOM: As John Resig shows.
As Ólafur Waage already mentioned, even though innerHTML is faster in a lot of situations since it’s not part of any W3C standard, quirks are far more likely to be introduced then if they were. Not to say innerHTML is not a defacto standard within modern browsers.
This blog post seems to indicate that Firefox spends a lot of time cleaning up after itself when using innerHTML to remove elements.