I wonder how this effects performance.

I’d need to look at exactly the flow (which I don’t have time for now), but one 
thing to keep in mind is that if reads and writes are not carefully plan, it 
could cause forced layouts which is a performance killer.

Not sure if this effects what you did or not, but definitely something to keep 
in mind.

HTH,
Harbs

> On Jun 4, 2020, at 5:49 PM, Carlos Rovira <carlosrov...@apache.org> wrote:
> 
> Hi,
> 
> as part of the Jewel Tile Layout improvement, I want to let you know about
> an important addition.
> 
> until now I had very hard time dealing with width/height of a component in
> layout classes when the width or height are a percentage
> or not set.
> 
> Since that depends on other containers, I found while working on Jewel
> DataGrid that I need to make "requestAnimationFrame" calls
> until I get the proper measurements.
> 
> So I set up a "waitForSize" public property that is available in all Jewel
> layouts, since all comes from StyledLayoutBase.
> This is false by default, so you need to put to true to use this feature. I
> didn't other way to get this measures, I think maybe this could have
> some performance hit, for that reason, I let users choose. If you know
> something better, let me know :)
> 
> If you check that code you'll find that performanceLayout is now using
> "checkHostSize()" (if waitForSize is true).The code is this:
> 
> /**
> * We call requestAnimationFrame until we get width and height
> */
> COMPILE::JS
> protected function checkHostSize():void {
> if(sizeInitialized) return;
> if((host.width == 0 && !isNaN(host.percentWidth)) ||
> (host.height == 0 && !isNaN(host.percentHeight)))
> {
> requestAnimationFrame(checkHostSize);
> } else
> {
> sizeInitialized = true;
> executeLayout();
> }
> }
> 
> when we get the size, we continue as usual.
> As I said before if you left "waitForSize" to false (default), it will work
> as always.
> 
> For example, new tile horizontal layout is using it in TDJ:
> 
> <j:Group className="wrapper" width="100%">
> <j:beads>
> <j:TileHorizontalLayout localId="tl" waitForSize="true"/>
> </j:beads>
> 
> Any comment are welcome
> 
> Thanks
> 
> -- 
> Carlos Rovira
> http://about.me/carlosrovira

Reply via email to