User Experience Stack Exchange is a question and answer site for user experience researchers and experts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am pondering of two approachs to work with my form:

  1. Send all data to the server when user has completed all steps.
  2. Save data to the server each time user has completed a single step.

Specificly, my wizard consists of three step: basic info, addresses, upload image. Each of these step consists of many manipulations that deserve a screen of their own.

In option 1, I worry there would be accidents during the steps that users lose all data they spend time inputing.

In option 2, I worry there would be accidents during the steps that would cause trash data.

Is there any things else I should worry about for each option? Supposingly the two options cause no technical problem, which approach should I take?

Appreciate all your help!

share|improve this question
Is this a webapplication? – Uooo Oct 16 '13 at 6:14
@Uooo yes, this is a web application. The wizard form is for entering new product data. – tiengtinh Oct 16 '13 at 9:14
up vote 5 down vote accepted

It is based on your requirement.

Send all data to the server when user has completed all steps.

If all the information(basic info, addresses, upload image) of the user are needed according to your requirement, then this is the best option.

Just think for yourself, You are going to send a three set of data to your server. Then which of the following is optimal ? a) send the first set , send the second set , send the third set (totally three server calls) b) store all the data temporarily till the end of the wizard and send all the three sets of data to the server (one server call)

Obviously option (b) will be the best one to choose.

Even if some accidents (unexpected error) happens in the middle, it wouldn't make sense if you just store incomplete or half data in your db (because you need all the info). It is better to let the user continue entering them just by retaining the info on the fields(maintain viewstate) and then save the info in the end of the wizard by sending them to the server.

Save data to the server each time user has completed a single step.

If all of the information are not mandatory and a specific set of data (any of the data sets) then you can send them to the server at the end of each step.

If some accidents happens in the middle, then you will probably have an one or two sets of data stored in your database, So depending on that you give the options to the user when he attempts to do the process again. I know it is tedious but definitely better than asking him all the info all over again. This is actually not a good practice, since the performance could be affected drastically with so much server calls which can easily optimized with your first approach.

Conclusion: As i mentioned earlier, the answer is based on your requirement. So if you just take care of the viewstate (maintaining the user inputs on all fields) it would be perfectly fine". Based on performance i would recommend the first choice "Sending all data to the server when user has completed all steps.

share|improve this answer
on the web HTML5 local storage is great support for this type of solution: – Toni Leigh Feb 8 '15 at 15:11

I think the risk of your backend having some trash data (which you can get rid of) is much more acceptable than the risk that your user might lose some of her data from a catastrophic crash.

Furthermore, having data can be useful enough to help the user experience with pre-filling previously filled inputs.

Additionally, if you can get partial data on a user (such as a customer's email address) you can still take actions with this information (like emailing a newsletter, or a plea to "come finish your signup").

share|improve this answer
I couldn't agree more on the last point. I would add that you could not only save the data after every step but also after every field is completed. So if the process starts asking for name and email address, eventually phone number, the business could get a lot of valuable information to push for process competition even if the "next step" button is not clicked. – Alexis Brion Oct 16 '13 at 7:55
I am not sure if I would be happy when i started a registration, canceled it and afterwards getting emails (aka spam) from this website. – Uooo Oct 16 '13 at 9:21
What about is your computer crashed and you forgot what site you were on? (Assume that the browser's history and cache were corrupted too). The point is, there's still helpful use cases for this practice – Bryce Hanscomb Oct 17 '13 at 5:54

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.