Action Confirmation in web application
One of the frequent problems we encounter while developing web applications is how to inform the user about an action that has been performed.
Take, for example, the following (quite common) scenario:
A user types data in some textboxes on the page, and clicks the “Save” button. The page submits itself, saves the data in the database, and redisplay. What should happen now? How are we going to inform the user that the save completed successfuly? Basically, we have three options, but IMHO each one of them is not good enough:
1. Display a popup window with the confirmation message - This is a bad alternative, since we force the user to perform some action (clicking the “Ok” button of the popup) without any reason. There was nothing wrong, and nothing should interfere with his regular flow of work.
2. Display a message in the browser's status bar - Not good. Often the browser decides by itself what would be displayed in the status bar, and our custom text could be quickly replaced by “Done”, “Opening page...”, or even “Error on page”. In addition, there is no control at all on the icon that will be displayed. Because of all the reasons above, the average user does not even looks at the status bar - he thinks he already knows what is in there (unlike dedicated classic client / server app).
3. Dedicate special area on the screen for messages - Wrong again. Screen area is an expensive resource, and in web environment it is even more scarce, with all the browser's toolbars (again, not a problem in a client / server app). This solution may work well for applications which should run on high res screens (1024 X 768 and above. Unlikely enough, most users still prefer the old 800 X 600 res) and have very few objects on screen, but if your page contains 10 textboxes + 15 tabs containing textboxes, grids and drop downs (as many of are pages are), you'll think twice before sacrificing 2 cm of the screen for messages which will be rarely displayed.
So, bottom line: we depend on the user to understand that if the page reloaded, and no error message appeared, then everything worked just fine.
What do you think about that? What is your approach to this issue?