okidoke, new thread started here: http://groups.google.com/group/jquery-dev/browse_thread/thread/12ab14b05d3f6cfb
--Mike On Apr 25, 6:56 am, John Resig <jere...@gmail.com> wrote: > This should go in a new thread. > > --John > > On Fri, Apr 24, 2009 at 4:54 PM, Michael Park <emp...@gmail.com> wrote: > > > There is definitely a problem with the way jQuery (I'm using 1.3.2) > > handles cleaning up namespaced events (I'm tracing the 'unload' event > > codepath). The problem from what I can tell seems to be in > > jQuery.event.remove: > > > 2540 // Handle multiple events seperated by a space > > 2541 // jQuery(...).unbind("mouseover mouseout", fn); > > 2542 jQuery.each(types.split(/\s+/), function(index, type){ > > 2543 // Namespaced event handlers > > 2544 var namespaces = type.split("."); > > 2545 type = namespaces.shift(); > > 2546 var namespace = RegExp("(^|\\.)" + > > namespaces.slice().sort().join(".*\\.") + "(\\.|$)"); > > > ...during the 'unload' event-handler codepath, this code snippet here > > is expecting the passed in 'types' argument to contain the namespaced > > event-identifier (ex. 'click.foo'), but instead it is getting the > > common event-identifier instead (ex. 'click'). > > > You can firebug-trace this yourselves with the simple examples I put up > > here: > > > http://emparq.com/ex/ex-good.html > > http://emparq.com/ex/ex-bad.html > > > ...you'll notice the only difference between these two examples is > > that one binds 'click.foo' and the other binds 'click'. In the bad > > example, hitting reload constantly will see the process memory useage > > go up (in essense, a leak) due to 'jQuery.event.remove' not properly > > cleaning up the namespaced 'click.foo' event), while the good example > > will not suffer the same results. > > > I'm still new-ish to jQuery and I'm not ready to hazard a solution > > just yet, but I'm guessing something either needs to be done with the > > way 'jQuery.event.remove' handles the value of the 'types' argument, > > or this code here: > > > 2531 for ( var type in events ) > > 2532 this.remove( elem, type + (types || "") ); > > > ...needs to be modified to properly put those namespaced suffixes back > > into the second argument. I'm not familiar enough with all of the > > use-cases that this function handles, so I don't know which is the > > best approach. > > > Can anyone else shed some light on this subject? > > > --Mike > > > On Fri, Apr 24, 2009 at 12:25 PM, Andrea Giammarchi > > <andrea.giammar...@gmail.com> wrote: > > > hopefully interesting: > > >http://webreflection.blogspot.com/2009/04/divexpando-null-or-divremov... > > > > but does not solve this specific problem. > > > Regards > > > > On Fri, Apr 24, 2009 at 5:29 PM, Josh Naro <joshn...@gmail.com> wrote: > > > >> Drip seems to claim everything leaks. I've been using sIEve, and it > > >> seems to give a more accurate account of the references. I also found > > >> this little jQuery plugin quite useful for eliminating IE references > > >> (source > > >http://groups.google.com/group/jquery-en/browse_thread/thread/b66a0d0... > > ): > > > >> jQuery.fn.discard = function(){ > > >> var garbageBin = document.getElementById('IELeakGarbageBin'); > > >> if (!garbageBin) { > > >> garbageBin = document.createElement('DIV'); > > >> garbageBin.id = 'IELeakGarbageBin'; > > >> //garbageBin.style.display = 'none'; > > >> document.body.appendChild(garbageBin); > > >> } > > > >> this > > >> .unbind() //unbind all handlers > > >> .each(function(){ // move the element to the garbage bin > > >> garbageBin.appendChild(this); > > >> garbageBin.innerHTML = ''; > > >> }); > > > >> garbageBin = null; > > > >> } --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "jQuery Development" group. To post to this group, send email to jquery-dev@googlegroups.com To unsubscribe from this group, send email to jquery-dev+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/jquery-dev?hl=en -~----------~----~----~----~------~----~------~--~---