And that's why I <3 it.

On Aug 6, 2009, at 9:25 AM, Aaron Newton wrote:

Gentlemen, so long as you use the MooTools method for setting inner html (.set('html', 'foo')) MooTools takes care of it. It garbage collects the contents, removes it, and then sets yours. In effect, MooTools calls .empty for you.

On Thu, Aug 6, 2009 at 5:35 AM, Tobi <[email protected]> wrote:

Ok, thanks!


On 6 Aug., 14:30, Fábio M. Costa <[email protected]> wrote:
> This makes sense for IE (6/7?/8?), i dont if its needed for other browsers.On
> ie6 empty() method is used as seen inside the if(wrap):
>
> this.empty().adopt(first.childNodes);
>
> On others it simply sets the innerHTML.
>
> Im not totally sure about the memory leaks on firefox and others but the
> core developers that made it are so...
>
> --
> Fábio Miranda Costa
> Solucione Sistemas
> Front-End Engineerhttp://meiocodigo.com
>
>
>
> On Thu, Aug 6, 2009 at 9:12 AM, Tobi <[email protected]> wrote:
>
> > To garbage collect elements and removing them properly...
> > Make this sense?
> > Maybe i mussunderstand empty().
>
> > On 6 Aug., 13:58, Fábio M. Costa <[email protected]> wrote:
> > > Why empty() it before setting html?
>
> > > --
> > > Fábio Miranda Costa
> > > Solucione Sistemas
> > > Front-End Engineerhttp://meiocodigo.com
>
> > > On Thu, Aug 6, 2009 at 5:41 AM, Tobi <[email protected]> wrote:
>
> > > > Hello
>
> > > > Wouldn't It make sense to empty() the element first, before Set the
> > > > innerHTML?
> > > > Or better not empty for performance reasons?
>
> > > > This is the actual code from mootools 1.2.3
>
> > > >        var html = {
> > > >                set: function(){
> > > >                        this.empty();                      //
> > > > <--------------------------------------------- ????????
> > > > var html = Array.flatten(arguments).join('');
> > > >                        var wrap = Browser.Engine.trident &&
> > > > translations[this.get('tag')];
> > > >                        if (wrap){
> > > >                                var first = wrapper;
> > > > first.innerHTML = wrap[1] + html +
> > wrap[2];
> > > > for (var i = wrap[0]; i--;) first =
> > > > first.firstChild;
> > > > this.empty().adopt(first.childNodes);
> > > >                        } else {
> > > >                                this.innerHTML = html;
> > > >                        }
> > > >                }
> > > >        };


Reply via email to