As your web application become increasingly more complicated and deal with increasingly larger chunks of data it is possibly also going towards the path of being more unresponsive. Viewing a flash video in HD, Uploading a 300 MB file, or even ordering a physical product in a web shop will possibly leave your user on hold. Regardless of the waiting time being 10 seconds, 10 minutes, or 10 days, the user will be left in a state of not knowing.
Instead of just showing a load indicator or sending out a confirmation email, keep the user updated. Let the user know what is taking so long and how much more waiting there is to do. Provide upload progress graphics, explain what is going on in a simple message, or send emails to the customer knowing when his or her product is shipped and when it is going to arrive.
Give your users a clue about what is going on behind the scenes, and they will stay happy – even though they’re still waiting.
Read the Speed in software design blog post to read more about ways to prevent putting users on hold.