To optimize our solution, it's necessary toe be able to measure precisely what our users experiences.
So here's a companion idea of Get(LayoutRenderingTime) that will help us to more accurately pinpoint slow objects on a layout.
So each time would draw a layout object, filemaker will compute it's rendering (plus loading of necessary data), and store it in a array that GetObjectRenderingTime(objectname) would retrieve us.
If the object is a portal, or a web viewer, it would also include the time of loading/rendering the external stuff. So in case of the web viewer, this will include webpage loading. The idea is to measure precisely the user waiting time for that object to be ready (which may include time to draw conditional styles, or part hiding)
Like Get(LayoutRenderingTime) it would only return the result when the layout is fully rendered, but with waiting web viewer loading and rendering if the object is a webviewer. So this would "pause" the script engine till the layout is fully rendered. Obviously invoking multiple GetObjectRenderingTime(objectname) won't take more time than one GetObjectRenderingTime(objectname) call.
P.S : Please also consider voting for the companion idea Get(LayoutRenderingTime)
P.S.2 : I've also considered a Get(LayoutAndObjectsRenderingTime) that would return a value list with layout rendering time on top, then objects names and their respective time, but the webwiever loading would then slow down getting the LayoutRendering time. With separate functions we have better granularity and can decide wether or not to wait for the webpage to load