Best practices for page load speed & performance
Hey all,
I'm working on a redesign of some of our Skuid pages. A lot of our high-traffic pages are quite complex and include multiple (10+ if not more) models and tabs. The upshot of this is that page load speed is high (read: really high).
I've made some significant improvements by doing the following:
Can anyone comment on whether this is realistic (perhaps I should aim for even better load times) and what are some pitfalls I should watch out for? Some other posts I've seen point out that tab sets are often a culprit, which made me I'm curious about what else might be dragging the speed down.
Thanks in advance!
I'm working on a redesign of some of our Skuid pages. A lot of our high-traffic pages are quite complex and include multiple (10+ if not more) models and tabs. The upshot of this is that page load speed is high (read: really high).
I've made some significant improvements by doing the following:
- Limit # models, model fields and records loaded per model
- Use page includes/popouts for creation of new records (e.g. new tasks, opportunities)
- Load custom CSS as a static resource instead of inline
Can anyone comment on whether this is realistic (perhaps I should aim for even better load times) and what are some pitfalls I should watch out for? Some other posts I've seen point out that tab sets are often a culprit, which made me I'm curious about what else might be dragging the speed down.
Thanks in advance!
Tagged:
2
Categories
- 7.9K Questions
- 926 Ideas
- 220 Discussion Categories
- 178 General
- 9 Community Feedback
- 3 Community Info
- 18 Knowledge Base
Comments
We cache our Skuid pages and no models load upon page load. When the record page loads, we have a tab-action that loads the first model, then the subsequent model.
Eg. on an Opportunity Page, no models load upon page load. When the page loads, a tab action Loads the Opportunity Model, then the Line Items, attachments, contact roles, activities, etc...
This way, the page loads instantly, provides the user the details they want first (e.g. the opportunity record) instantly, and by the time they want the related details, it's all there.
If you query models after the page loads, the data won't be stale.
One thing to note is that, as Mansour said, page caching will run the risk of not retrieving the latest data, however the risk is dependent on how the model is configured. If you have the model marked to "process client-side", the page HTML will be cached but since the models will be loaded on the client, you will always receive the latest data on page load.
I do have a secondary question related to field rendering. Our opportunity detail page is filled with rendering conditions based on the Recordtype.Name. Now this is a second level field so I was wondering if creating a formula field at the opportunity level would improve page performance (even marginally)? We have about 81 of these in page for reference.
Referencing the documentation below
https://docs.skuid.com/latest/en/skuid/best-practices/#optimize-conditions-sort-on-first-level-field...
I am not sure whether a formula field to display the recordtype.name will help with the page performance. You can switch to using the recordtypeid itself since this doesn't change between your sandboxes and production.
Thanks,
Bill