Jump to content
Sign in to follow this  

Invoking Data Via Visibility

Recommended Posts

I have been watching and re-watching a web seminar by Mark Richman called "Eight ways to make Filemaker databases run even faster.                            https://www.youtube.com/watch?v=yNRNMgs--T4&spfreload=10

The basic goal is to minimize the  packets of information that need to come down from and go back up to the server.  He makes the statement that "if you can see it or touch it, it invokes the data" .  To this end he advocates for using more layouts with fewer objects per layout.

My question has to do with how visibility factors into this. 

A database I am creating for my cabinet shop has a lot of graphics that are grouped together with fields.  These combined objects are stacked on top of each other then made visible based on the results of a calculated field.

The attached jpeg shows a couple of typical objects.  Only one of these objects is visible at a time.  The entire stack would probably comprise a dozen or so of these objects.

If only one of the objects is visible at a time do the non-visible objects contribute overhead weight to the layout?

Would my database refresh faster if each of these cross-section objects was on it's own layout?



stack visibility.jpg

Share this post

Link to post
Share on other sites
Posted (edited)

Yours is a good and important question.

One of the best ways to feed the need for speed is to prevented Containers and un-stored calcs from loading until you need to see them.

  • Our testing seems to confirm that Containers and un-stored calcs that are on a Slide Panel that is never activated will NOT load.
  • Putting Containers and un-stored calcs behind a Popover will keep them from loading until popped.
  • The “Hide object when" feature does NOT seem to be as effective in preventing loading.

Let us say that you have an record where you show 1 of 12 images. You might use a Slide Control with 13 Panels where the first panel is empty and you use a script to show 1 of the other 12 panels (and associated layout objects) on demand.

Conversely, I would expect that stacking 12 images would load them all, even if they were behind a “hide object when" calc.

Sometimes we use 1 Layout with a Slide Control with panels of info

Sometimes we use separate Layouts.

Pros and cons to each approach.

Edited by tonywhitelive

Share this post

Link to post
Share on other sites

There was an under-the-hood session at a recent DevCon where the engineer from FileMaker stated that object visibility is the first thing evaluated when drawing a layout. If my understanding of this is correct, then Tony's conjecture above is incorrect. I.e., at least in terms of screen redraw you will not incur any performance penalty from hidden objects. However, each hide calculation must evaluate, so that will have a cost -- probably minimal from your example.

Share this post

Link to post
Share on other sites

Hi Tom,

We did some testing using the “Hide object when” feature while watching the Top Call Stats that resulted.

The test in question was hiding a portal using a Slide Control, a Popover, and the “Hide object when” feature.

A Slide Control or Popover did NOT produce a query to the related table.

The “Hide object when” feature did.

I plan on speaking with my FMI engineering friends at DevCon to reconcile what has been said with what our testing shows.

Important topic.

Share this post

Link to post
Share on other sites

Hold that thought. We are retesting and having a hard time reproducing the "Hide object when' fail.

More soon.

  • Like 2

Share this post

Link to post
Share on other sites

Thank you to everybody for your help here.  I really appreciate it.

I would be curious to learn more about the results of Tony's  retesting of "Hide Object When".

My comprehension of the "Conditional Visibility" section of the article  BCooney pointed to seems to corroborate what Fitch reported.  


If you use the new feature to hide objects when a formula is true (Conditional Visibility), be aware that it follows the exact same rules as Conditional Formatting. It immediately reevaluates as referenced data changes and as the window is redrawn. No commit or refresh is necessary. Like Conditional Formatting, this is nice, but it can lead to a significant performance impact if there are a lot of conditionally hidden objects on the layout.

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Create New...

Important Information

By using this site, you agree to our Terms of Use.