Say you have a UI that reflects some sort of server-side data and the UI can manipulate that data via HTTP requests. For a more concrete example, consider a user database with a web interface that can add, edit, and delete users through HTTP. The client itself stays in sync with the server through periodic polling and has an updating table of users on one page.

When the client modifies the data, when should the data in the table be changed? If it is changed when the client edits the data, then there is an inconsistency in the client and server data for some period of time and that has to be dealt with if the HTTP request to change the data fails. If the interface is updated either when the request is successful or the next time the server is polled for data, it may cause a user to believe their action didn't do anything.

Is there a generally preferred approach to this? Would it be better to do something like have some kind of sync status that's displayed as an icon or color for each record while the data is out of sync?

  • Does this kind of scenario really happened, or you trying to predict it. How much requests per second you expects for this API? My point that you can spend a lot of time and resources on scenario which happened rarely. In case you really need solution for this - consider some kind of "show changes history" beside updated control. History can be displayed by text or colors – Fabio Apr 7 '17 at 17:51
  • Why not provide feedback to the user for two things: 1) the server is processing your request (i.e. we don't know if it was successful or failed), and 2) the server finished successfully or failed to process your request. Don't simply overwrite the client data without providing notification. – Frank Hileman Apr 9 '17 at 0:42
  • I think this is off topic here. There's no technical "should" in this case. This is business requirement and UX land. I'd take this question either to your stake holders or ux.se. ... I'm vtc-ing. – svidgen Apr 13 '17 at 13:03
  • I'm voting to close this question as off-topic because it's a UX and/or stakeholder questing. – svidgen Apr 13 '17 at 13:04

You can implement a handshaking method. Once data is updated on the Client GUI, it grays out ( or creates an icon stating that it is waiting the server side to change) and when server confirms the change, client UI will be released and icon will disappear. It also gives a good feedback mechanism to user that changes are accepted, while keeping both side records in sync.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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