I just rant your test in FF3 & IE7 - the difference is significant, especially in IE. Do you know what accounts for that? Is there any drawback to using Element.<method> instead of element.<method> (beyond extra typing)?
On Jun 25, 12:33 pm, kangax <[EMAIL PROTECTED]> wrote: > It absolutely would. IE happens to be very sensitive to > "methodized" (and "wrapped" to some extent) methods. The problem is $ > (as well as concat and $A) which does some heavy lifting in IE. Take a > look at this > benchmarkhttp://yura.thinkweb2.com/bench/test/performance/dom.html > There's a 10%-40% speed increase by simply replacing > "element.<method>" with "Element.<method>(element)" : ) > > - kangax > > On Jun 25, 12:18 pm, Matt Foster <[EMAIL PROTECTED]> wrote: > > > Kangax, > > > True, my example method isn't rock solid, I wasn't about to > > submit a ticket for it heh. It would help to accommodate a string > > value being passed, but the documentation states that it only accepts > > a hash, this was more for proof of concept than the next big thing. I > > am curious about the "methodized" inefficiencies, would it be more > > appropriate to set it as such... > > > ele.setStyle = Element.Methods.setStyle.wrap... > > > -- > > Matt Foster > > Ajax Engineer > > Nth Penguin, LLChttp://www.nthpenguin.com > > > On Jun 25, 11:40 am, kangax <[EMAIL PROTECTED]> wrote: > > > > Matt, > > > I think he meant an "actual" heightchange, not just intercepting > > > #setStyle call. Timer seems like an only option in that case, and > > > you're right about performance hog. On a side note, I wouldn't > > > recommend "wrapping" an already "methodized" #setStyle - it's very > > > inefficient. It's also a good idea to see what "style" is, as it could > > > be either an object or a string. Moreover, "style.height" could be 0, > > > so "if (style.height && ... )" would not work as expected. > > > > - kangax > > > > On Jun 25, 10:47 am, Matt Foster <[EMAIL PROTECTED]> wrote: > > > > > Hmm this is an interesting idea, so many different ways to access that > > > >property, and with no nativepropertychangemodel it seems > > > > impossible. My first thought was using a timer but that is going to > > > > gum up resources. If in your app you were savvy and used a setter > > > > method you could implement an event that would get this done. Using > > > > prototype's setStyle, and ele being a valid dom reference you could do > > > > something like this > > > > > ele.setStyle = ele.setStyle.wrap(function(prc, style){ > > > > if(style.height && this.getHeight() != > > > > style.height.match(/^[0-9]+/ > > > > g).first()){ > > > > prc(style); > > > > this.fire("derka:heightChange"); > > > > } > > > > else > > > > prc(style); > > > > > }); > > > > > Which would work fine for a single element, if you wanted to observe > > > > multiple elements heightchangeI'd suggest iterating over a > > > > collection of objects that needed this functionality and wrap their > > > > setStyle methods. > > > > > Here is a basic working demo of this in action, be sure to have > > > > firebug working as the debug comes across in the > > > > console.http://positionabsolute.net/projects/javascript/propertyChangeEvent/ > > > > > -- > > > > Matt Foster > > > > Ajax Engineer > > > > Nth Penguin, LLChttp://www.nthpenguin.com > > > > > On Jun 24, 9:12 pm, mocambo <[EMAIL PROTECTED]> wrote: > > > > > > Could anybody give me any suggestions for observing > > > > > Element.style.heightchange? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---