Servoy does not cache styles on smart client when using application.overrideStyle().
We’re not exactly sure the order of events, but the following seems to make sense:
1- We issue an application.overrideStyle(‘FRAMEWORKS’,‘fw_MAC_leopard’) command for whatever OS the client is running on at startup.
2- Servoy remembers that override
3- When a new form is loaded, Servoy overrides the style…but
4- It does this on the client
So everytime a new form is navigated to, the whole style file is pushed down to the client afresh (it is NOT cached at the client like a browser will do).
Our style average about 20k. So for each form viewed, that is 20k over the wire. Throw in a typical screen like a CRM with 3-5 forms in tab panels and we’re at 100k. This produces a significant data transfer spike the first time the screen is loaded.
And yes, every form loads the style sheet when application.overrideStyle() is used. So a screen that has many forms included via tab panels or split beans or whatever can really spike the amount of data transferred when that screen first loads.
We have optimized our frameworks to the (n)th degree for WAN speed. We’re at the point where a very complex solution is as responsive as the Servoy demo CRM. Except for this one bottle-neck, which is fairly significant.