Performance gains can be had from the following:
-Reducing the number of objects on a layout
-Reducing the number of fields in the table
-Omitting related fields from other tables from the layout
-Reducing the number of unstored calculation and summary fields in a table
In order for WebDirect to perform the "FileMaker Magic" of handling record saving and locking, for each tab action the server needs to save and update the record, generate new HTML with any changes and send that back to the user. The more complicated your layouts and tables are, the longer that action takes to evaluate, regardless of what styling you use.
There are 28 fields on the layout but they are all global fields. 10 of the fields have conditional formatting - IsEmpty ( Self ) to show mandatory fields. There are 116 global fields in the table and about 20 calculations that are not stored. None of the calculations are on this layout.
Does webd force the calculations to evaluate even though they are not on the layout?
Yeah, from what I’ve found all fields, regardless of context, are loaded and evaluated even when they are not referenced by the layout. So you’re loading all that data even though it’s not being used.
If you think about it, it makes sense, as WebDirect data needs to be locked and loaded on the server in a static context before being displayed user-side.
Re-introducing a 1:1 relationship and placing all of your unstored calcs, sum() functions, and “heavy” fields in another table seems to speed up record loading time, as long as none of the related fields are on the layout (in which case the entire related record is also loaded).
I am currently mentoring a user that originally had a few hundred fields that have been split out to multiple 1:1 tables and the performance drastically increased. It’s not hard to setup since filemaker has “allow creation” and “delete related” functions at the schema level.
you might want to keep all of your globals in a separate table with only a single record as well, rather than inline with your main data table.
Also realize that all of those formatting calculations are being evaluated each time the screen is redrawn although formatting on 10 fields isn’t heavy in my opinion.
It does make sense regarding data loading. The global fields are in a 'single' record table but there are a lot of other global fields and calculations.
I just did a test removing the portal from the layout. It's hard to evaluate exactly but it seemed a millisecond faster?
As I mentioned I only need about 30 fields. I'm going to move the fields to a separate table and see what happens. I'll report back...
WebDirect is hard to measure metrics on due to internet connection being a huge part of performance. Good luck.