Ok, good points that I hadn't considered.

However, I would think that many developers will just use Event#remove
without considering the need to remove the event listeners, which
could lead to memory leaks.

Maybe an Element#destroy method could fill this gap - remove event
listeners, remove element from the DOM and then trash it - a
destructive method for when the developer says "OK, I'm done with this
element..."

On Oct 2, 9:06 am, Jim Higson <j...@wikizzle.org> wrote:
> On Thursday 01 October 2009 21:56:30 Mike Rumble wrote:
>
> > You could also encapsulate this in a function wrapping Element#remove,
> > which IMHO is something Prototype should do out of the box.
>
> Quite disagree:
>
> * If I remove an element and add it elsewhere, I don't expect its events to
> have been de-registered. The code that moves the element shouldn't have to be
> aware of the (possibly unrelated) code that added the event listeners in order
> to ask it to add them again.
>
> * Removing from the document is not the same as allowing to be GC'd
>
> * Some elements may never be added to the document. Eg, an XML document which
> you download, manipulate then build some HTML representation of. Perhaps you
> want to monitor for mutations and keep the HTML in sync? [1]
>
> Jim
>
> [1] Not actually possible in IE or Chrome/Safari but would be nice if it were.
> In Chrome DOM mutation events only fire if the element is in the 
> document:http://jimhigson.blogspot.com/2009/09/chrome-and-dom-mutation-events....
>
> --
> Jim
> my wiki ajaxification thing:http://wikizzle.org
> my blog:http://jimhigson.blogspot.com/
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype: Core" group.
To post to this group, send email to prototype-core@googlegroups.com
To unsubscribe from this group, send email to 
prototype-core-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/prototype-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to