"What is jQuery doing to empty an element?" That's so easy to see/find-out for yourself
open up the jquery.js file, search for "emtpy" and voila empty: function() { // Remove element nodes and prevent memory leaks jQuery(this).children().remove(); // Remove any remaining nodes while (this.firstChild) this.removeChild(this.firstChild); } "2. Are there any rules when not to use jQuery for certain DOM tasks but better to resort to direct DOM manipulation as in the example above? " One option that I've seen recommended a lot is to set the ".innerHTML" of the DOM object to empty string..... i remember that it's fast, but I can't remember if there were downsides to using that instead On Aug 26, 2:32 pm, oleOhle <mohleme...@googlemail.com> wrote: > While writing my first jQuery application I encountered a performance > issue whichs casts doubts on the suitability of jQuery for my purposes > in general. > > The "issue": In my page I have a dynamically filled <div> which in the > end contains about 10 elements, one of which is a table with 1000 > rows. Now when I try to clear that <div> with a simple function like > > function clearContainer() { > $('#' + Container_ID).empty(); > > } > > this will take forever, i.e. one faster machine a few seconds, on my > netbook it even leads to javascript timeout errors. > > Rewriting the function to > > function clearContainer() { > var containerNode = document.getElementById(Container_ID); > while(containerNode.hasChildNodes()) { > containerNode.removeChild(containerNode.lastChild); > } > > } > > fixes the perfomance issue, the <div> is cleared almost immediately. > > Two questions remain: > 1. How can the results be explained? What is jQuery doing to empty an > element? > 2. Are there any rules when not to use jQuery for certain DOM tasks > but better to resort to direct DOM manipulation as in the example > above?