Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. 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'm writing a web app that requires the usage of drag and drop as well as other jQuery/HTML5 features.

There are two options for saving a user's changes to a database

  • Implicit: database save on the end of an event, such as drop, hover, ect.
  • Explicit: save changes to local array and submit on submit button click event

Currently, the only difference between the two is that implicit saves hooked to user events results in many more POST/GET data requests as compared to the explicit save.

Other than that, is there a major distinction between the two, and what are the reasons for choosing either option?

share|improve this question
When you do implicit save, you usually want a solid Undo-System and some kind of (unobtrusive) notification when things are saved. – Joachim Sauer Jul 4 '13 at 12:02
@JoachimSauer: I would think that an undo system could be useful for either approach. – FrustratedWithFormsDesigner Jul 4 '13 at 13:45
@FrustratedWithFormsDesigner: useful: yes. But for implicit-save systzems it's absolutely essential. When the system saves every single typo and mistake automatically, you want an easy way to undo stuff. If you explicitly have to confirm your changes, then good undo is a nice extra, but not required. – Joachim Sauer Jul 4 '13 at 13:56

Implicit save will behave as many people would expect drag and drop to behave. Also users won't loose changes.

Explicit save will likely result in much more support effort as users are likely to forget to save their changes. They may also loose work if they delete the source and forget to save.

In either case consider the requirement for undo and how to implement. This may require storing either prior state or a change log.

share|improve this answer

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.