When does a single page web app need a loading page in the style of Gmail or RTM or the many others? Should there be a size at which I introduce one? Is it just about time?
And, is it just loading in the JS, CSS files etc, or is it doing processing too?
Also, as an aside, how would I even go about introducing such a page? Are there plugins/guides, etc?
Thanks!
It is a complex question. as many times the best answer is “it depends”.
I think it is not about size but simply about how user experience you want to offer. More richest and dynamic content more rich your client must be.
So if you make many things dynamically using JS at client side, like gmail,where UI never freeze, the calls are asynchonous and content refresh is made by JS, you can arrive to have an architecture where server offers an API and client side contains more business logic.
The basic idea is to have a HTML file, with some CSS and JS code responsible to load or send data from/to server and update the UI.
This is different from the “traditional” model whre client request a server page. The server proces the request, generates a HTML (plus CSS+ JS) and returns to client. Then any click on a button generates a new request that returns a new page. etc.
I suggest you to take a look to Dojo toolkit.
Programming in the gmail way can produce lost of JS files and really big HTML files. Dojo simplifies that a lot and also manages modules. This way the client side code is not loaded once when the HTML page is loaded, but it manages which “modules” you need and load it when needed.
Hope this can clarify a bit.