General advice on page render optimisation?

Summary

Here is a shot of our app. Currently a lot of it is working, but one thing that I would like to improve is how the page gets drawn. I realise that Streamlit will read and run the script on each interaction, but for us this is resulting in a page that (while it only takes a second or two), stumbles its way down the page, sometimes putting items in the wrong place before the chart is processed. Once finished, it is fine, but it just looks a bit unprofessional for it to glitch out and stagger its way through rendering the page on each widget interaction - which the user might be doing a lot of.

Are there any suggestions for making this smoother? Can the page rendering code itself be cached? Can input widgets be altered, and Streamlit do nothing until a โ€œsubmitโ€ button is pressed? Or, if jumping through render is unavoidable, is there a way of fading out the screen, show spinner, and re-render or otherwise making it look more professional?

You can put your widgets in a form if you would like to allow a user to make multiple changes before committing to rerunning your script.

You can use st.empty to clear a screen. I just wrote a snippet in another post here:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.