There are really two things that might come into play here:
1. Loading indicator for bindings.
Bindings produce values in an async way. Imagine you have a polling-off query binding. The view will start up, your property value will initially be whatever default it was set to in the designer or simply missing if set to non-persistent as the query executes. The query may take some significant amount of time to produce a result. During this time, the view and component are loaded and visible, but the binding is “loading”, and this is useful information that you might want to act upon. This is something we will be adding, and it is easy for us to do. It will be in the form of a new property on component meta like
meta.loading which will be a count of bindings that are currently loading. You could use this to come up with some sort of “please be patient” UI of your own.
2. Loading UI indication for the loading of views, including embedded sub-views.
Imagine you navigate to a page configuration, and that it has some embedded sub-views. Then, those sub-views have more sub-views embedded in them, and on down the line. There could easily be hundreds of sub-views that get loaded in the process of loading that page configuration. Currently, each individual view gets its own, independent loading UI. This can look busy / messy for highly complex nested view configurations as all the views pop into place. It also causes some browser layout thrash along the way as the layout needs to be recomputed often as views load and learn of their true size. To make matters even more complicated, some embedded view configurations like view repeaters typically only know what sub-views will be in them when their bindings (which are async, remember) provide their data.
We’re working on some solutions to improve the look of this sort of loading scenario so that the whole page has a more pleasant / less thrash-ey “page is loading” look. This one is proving tricky to solve, however, because of the async/unknown nature of exactly how many views are going to be loaded before a page is considered “finished” loading.
We’re also working to simple improve the time it takes to load views, and we have made significant progress on this front steadily since 8.0.13, but there is still room to improve.