1 of 1 people found this helpful
General rule of thumb: FileMaker loads what it needs when it needs it. (There are some exceptions, but this is a good general rule.) You are correct when you say if one related field is required, then all fields come down. (This is because the fetching behavior is record-centric.) In general, data on tabs do not pull down until the tab in question is the frontmost tab, or until something requires FileMaker to have those data.
Example: I have a client who has a tab control on a layout. He has put portals on these tabs, but in some cases, has put summary fields as merge objects in the tab name. Wherever those summary fields appear, the related data load down as soon as the summary is needed. In the other cases, though, the related data do not pull down until he clicks on the tab where the portal appears.
P. S. When it comes to portals, the records load in 25-record chunks. With a single related field, only the single related record is loaded.
Thanks Mike, that makes perfect sense.
In my hands this is not the case.
If I have a Layout with objects that are data heavy (for example a large image or a portal with complex relationship, filtering, or unstored calcs), ALL objects load on record load on the default tab, or not.
Try it out yourself.
To solve performance issues like this, I moved the offending object to a separate layout that can be called by the user on button click. This way you only pay the penalty to view it if you want to.
How do you know?
I'm not sure if we can take this for granted for future releases. Changes might affect rendering processes even with tab control and slide panels.
Though I kindly ask for this:
Yes, behaviors can change. This is how it works right now.
The tricky part is that hidden information in a tab or slider can often be used when you don't realize it such as for summaries or maybe references via layout calcs such as conditional formatting. FileMaker does a good job of optimizing things to bring as little as possible over, but we often defeat these optimizations with complicated layouts. But the more and more we do things on the Wide Area Network, the more I find simplifying layouts is important. So your question is a good one to ask and be aware of.
Having already "tried it out myself", I can tell you that this is not true. Unstored calcs and slow-loading portals and such don't load with the layout if they are on an inactive tab or slide panel. They load when you go to that panel. If you're seeing them load when you load the layout, then something on the front tab is loading slowly.
I've used this fact as a down and dirty temporary fix with tabbed dashboards, where it was going to take a bit of development to speed up the dashboards themselves (or, in some cases, where the client didn't want to bother to speed them up). I added a default tab with nothing on it, or where they could pre-enter their filter globals. The layout loads immediately, and then they only wait for the stuff on the tab they're actually wanting to see, when they click that tab.
If you're seeing them load when you load the layout, then something on the front tab is loading slowly.
Such as the aforementioned summary fields that depend on the related records shown on the inactive tab? ;-)
Those would do it, yup.
I've seen several developers try to address performance issue by moving things from inactive tabs to separate layouts. It's never once solved the problem. Each time, though, the attempt generated a lot of wasted work and unnecessary layouts, though, and distracted from the real issue(s). The result ends up looking and working like pre-FM8 "tabs" (separate, almost identical layouts)... and whatever performance issue was there before is still making it slow.
The misconception persists, though. I think it's from a misinterpretation of the fact that if one related field gets loaded, the whole related get loaded. That doesn't mean that loading a layout loads every field (and therefore every record) that's anywhere on that layout.
Sorry if I'm ranting a bit about this, and I didn't mean to imply that you weren't concise. I'm just hoping to eventually get this out there explicitly enough to kill this common misconception.
No worries. It needs killing.
Egg on my face.
I have tried it again, and everyone is right but me.
Inactive tabs containing unstirred calc etc don't load till the tab is activated.
I think I might have originally done this in an older version.
Sorry to add to the confusion!