[Feature-1147]Perspective - Delay Binding until custom property bindings have been evaluated


i have a perspective popup with nested bindings:
1 input parameter
5 custom properties with expressions referencing the input parameter
1 caroussel with a expression structure referencing the 5 properties and a following script transform

What happens is that the script transform ist calles for any change of a custom properties. So when opening the popup, the carousel flickers with different options until the final result is displayed.

Is there any way to delay evaluation of the carousels binding until all custom properties have been evaluated?

As of this time there is no way to really delay the binding evaluation process, nor the appearance of components which are waiting for bindings to evaluate. We do have an open feature request which would provide a way to determine how many bindings are still evaluating so that “loading” states may be applied to Views.

Yes, please. :slight_smile:

Ok, thank you for the feedback.
I will replace the expression structure by scripts for now. My problem is not only the flicker but also the named query that executes 6 times in less than a second.

@chi we use style animations to hide a lot of the flickering. Short fade in animations work well, and can often give the illusion that the UI is faster than it actually is.

Thanks for your reply. Can you please explain how the animation knows when all properties have been evaluated and the component can be displayed? Or do you simply delay the initial display with a slow fade in?

@chi we delay the initial display for simplicity. Most cases for us the evaluation takes <1s but we have got some animations that hide for 2s then fade in for 1s on the particularly complex displays.

This technique works particularly well for dynamically embedded views (I’m finding embedded views are still a little bit laggy, but I know that various solutions are being discussed by Ignition dev/support). If you have a fade in on the embedded view component and the child views, it hides the initial binding evaluation to get the appropriate view path and then the child view slowly fades in. This gives the effect of a deliberate staggered animation, when in fact it’s just hiding the loading of the views. But I digress…