Well... I concluded a nicer solution and asked you to try it. But you never replied...
http://dev.jquery.com/ticket/3553 if (this.parentNode) this.parentNode.removeChild( this ); if (jQuery.browser.msie) this.outerHTML = ""; -- Ariel Flesler http://flesler.blogspot.com/ On Nov 25, 3:28 pm, "Chris Robinson" <[EMAIL PROTECTED]> wrote: > Hey Nick, > > this was never completely resolved. The edited jQuery source I was playing > around with is > here:http://www.outsidethediv.com/memory-leak-test/js/jquery-1.2.6-updated.js > > You can try swapping your jquery include with it and see if that helps at > all. It seemed to help out a good deal in my case but was rather > inconclusive in smaller stripped down tests. > > On Tue, Nov 25, 2008 at 9:30 AM, Nick <[EMAIL PROTECTED]> wrote: > > > I am having a very similar problem. Can someone give more details as > > how to modify the JQ source file to fix this? > > > I have noticed (in Drip) that when I refresh the page, the DOM nodes > > duplicate. This doesn't make any sense to me since I know JQ unbinds > > everything on page unload in IE. This node duplication is leading to > > some serious memory issues in my app that needs to run for up to 8 > > hours straight without a browser restart. > > > Any help would be much appreciated. > > > Thanks, > > Nick > > > On Oct 24, 12:50 pm, chris robinson <[EMAIL PROTECTED]> wrote: > > > Hey all, > > > > I believe I have found a leak and have the beginnings of a solution to > > > it. > > > > I'm writing an app that preforms ajax searching that returns pretty > > > large result sets. I render them via jQuery into a tbody. once a > > > subsequent search is performed I call tbody.empty() and append the new > > > results. I created a test harness that would perform a predefined > > > search 5000 times in a row with a good amount of time in between. > > > > I noticed that IE was allocating quite a bit of memory and never > > > reclaiming it. At first I thought it was a closure or circular > > > reference on my part. Once I was sure I had removed them I ran more > > > test, sure enough it was still allocating a lot of memory. Through a > > > lot of research I found this articlehttp:// > >www.scribd.com/doc/2159768/Ajax-Part2 > > > which says that JS's removeChild will leak in IE. Microsoft uses > > > another method to remove which is essentially this: > > > > function DestroyElement(elem) { > > > var garbageBin = > > > document.getElementById('IEMemoryLeakGarbageBin'); > > > if(garbageBin === undefined) { > > > garbageBin = document.createElement("DIV"); > > > garbageBin.id = "IEMemoryLeakGarbageBin"; > > > garbageBin.style.display = 'none'; > > > document.body.appendChild(garbageBin); > > > } > > > garbageBin.appendChild(elem); > > > garbageBin.innerHTML = ""; > > > > } > > > > I went through jQuery 1.2.6 and replaced the removeChild references > > > with a check for IE, and if so use this, else use the regular > > > removeChild. After doing so and rerunning my test I saw drastic > > > improvements in memory being reallocated after my elements were > > > removed from the document. > > > > I also ran these test on FF, with or without this change it ran the > > > same way, recollecting memory correctly. > > > > this is only seems to be a drastic performance increase if you are > > > creating 1000+ dom elements and binding events to them, but, the app I > > > am writing has to be able to run all day with out leaving or > > > refreshing the page. > > > > I just thought the Dev team might be interested in my findings. I > > > plan on striping this down and writing conclusive tests and > > > documentation over the weekend. > > > > -Chris > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "jQuery Development" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/jquery-dev?hl=en -~----------~----~----~----~------~----~------~--~---
