Tech Tip: Lazy Loading in ORDA and Its Impact on Forms
PRODUCT: 4D | VERSION: 21 | PLATFORM: Mac & Win
Published On: February 23, 2026
ORDA uses lazy loading to retrieve only the data that is actually needed. This design improves performance by avoiding unnecessary data transfers, which is especially useful when working with entities that include many attributes, computed attributes, and relations.
While lazy loading generally speeds up ORDA queries, it can introduce additional loading time when switching pages on a Form, particularly when list boxes are involved. If a list box relies on attributes or calculations that have not yet been loaded, ORDA must fetch that data on demand. This can create noticeable delays when users switch tabs (navigate between the form's pages).
To avoid these on-demand loading pauses, ensure that all required data is loaded at the time the query is executed.
For example, when using footers in a list box, instead of using an aggregating Variable Formula (which is not computed unless displayed/used) set the footer to Custom and perform the calculation directly in code when the query runs.
By preloading the necessary values, it eliminates the need for ORDA to fetch additional data during page changes, which can result in a smoother user experience.
While lazy loading generally speeds up ORDA queries, it can introduce additional loading time when switching pages on a Form, particularly when list boxes are involved. If a list box relies on attributes or calculations that have not yet been loaded, ORDA must fetch that data on demand. This can create noticeable delays when users switch tabs (navigate between the form's pages).
To avoid these on-demand loading pauses, ensure that all required data is loaded at the time the query is executed.
For example, when using footers in a list box, instead of using an aggregating Variable Formula (which is not computed unless displayed/used) set the footer to Custom and perform the calculation directly in code when the query runs.
By preloading the necessary values, it eliminates the need for ORDA to fetch additional data during page changes, which can result in a smoother user experience.