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
-~----------~----~----~----~------~----~------~--~---

Reply via email to