I have a website whereby lots of the loading/posting to a database is done with ajax.
At the moment there are no loading screens. As such, if something breaks, the user has no idea that anything was even registered as being submitted. Likewise, if their connection is slow, it looks like nothing is being done until it is complete.
Hence, users may resubmit forms, so I need a loader.
My initial idea was to just replace the content on the page with an animated GIF. This, however, looks a little boring. Whilst playing around with ideas I had another thought.
Elsewhere on my site, if data cannot be found, a lightbox is loaded which explains why nothing could be found. I have done this because despite being a complex process, it is important that the user understands this.
This looks really good, so why not use it for all loading screens? That is, blur out the screen and place a lightbox containing the loader GIF and some information to keep the user entertained.
I implemented this and it looks good, but if the user has a very fast connection, for example, the lightbox appears and before they know what has happened it is gone again and they can't read any of its contents.
So I thought, regardless of how quickly the content loads, the site should show the lightbox for 2 seconds so that even if it is only very briefly, they know exactly what was happening. This functionality would be consistent across the site, and 2 seconds really is not a lot.
In my opinion, waiting longer actually adds to the user experience.
Is this correct? What are your thoughts on this?