[8.1.3] Designer freezes and becomes unresponsive

Don’t try to call readBlocking manually. Use a tag binding; it’ll automatically be asynchronous, and update whenever the source tag changes. For best performance, you could put it on a private custom property on the flex repeater, then transform/slice/whatever it to pass to your instances.

What do you mean by private custom property ?

Make a new property under the custom area in the flex repeater’s properties. Right click it, and you can set it to ‘private’ - which just means that Perspective won’t try to synchronize the property model from the backend (on the gateway) to the frontend. It’s not a security concern, in your case - but it would be a performance detriment if you’ve got a particular large array/object, or if it’s changing frequently.

2 Likes

I didn’t know that.
I’ve read what I found about private/protected properties, and I’m left with more questions than before :stuck_out_tongue:

Let’s recap, because there’s a lot of new information that I need to make fit together.
I have an accordion, where both the headers and bodies inclue a flex repeater.
Here’s what I gathered so far:
bind the items property to a named query that returns what should be displayed, which in this case means two things - How many rows there will be in the accordion, and the params to pass to each header and body view so they know what to feed to their flex repeaters.
In the header and body views, on the flex repeater, make a custom private property, bound to my alarm dataset. Use that property and the view params to construct the instances property.
- Does it make a difference if I make the custom private property on the flex repeater itself, or in the custom property of the view containing the flex repeater ?
- Will the dataset be copied for each instances where it is bound to a property ?
- Should I filter the info I need in a transform on that private property ?

I know I have a lot of questions, and I thank you for your time. I’m quite new to ignition, and to anything frontend in general, so I try to use any occasion to learn as much as possible

edit: Or should I still do everything at the top level, so bind a custom private property to the dataset on the accordion itself (or the view that contains it), and use it in a script transform on the items property to generate an array for each header and body views, that they can in turn bind to their own flex repeaters ?

edit 2: What if I make a custom (private ?) property on the accordion bound to the query that gets all the devices I need to display, then bind the items property to the dataset tag, send it through a transform in which I can use the result of the query saved in the custom prop to build everything I need ?