In general, how do you guys handle user update/data freshness interaction with the user (UI issue) in web-apps?
For example:
- Multi-users web-app (like project management)
- Login to a "virtual" space
- People can update project names, etc
- How to handle a situation such that:
- user-A and user-B load a project with title "Project StackOverflow"
- user-B updates the title to "Project StackExchange"
- user-A updates the title after user-B update operation to "Project Basecamp"
The question I'm asking is from the user perspective (UI) and not about transactional operation.
What do most people do in this situation?
- What would you do after user-B updates the title in user-A screen/view?
- What happened when user-A tries to update the title after user-B finished his/her update operation?
- do you inform user-A that the title has changed and he/she has to reload the page?
- do you go ahead and change the title and let user-B has old data?
- Do you do some sort of application-level "locking" mechanism? (if someone is updating, nobody else can?)
- Or fix the application workflow? (who has the access to be able to change things, etc).
What would be the simplest solution, but at the same time not annoy the user with more dialog/warning messages.
I've encountered this particular problem frequently in a GWT app specifically where domain models are being passed around and refreshing the whole app/client-side isn't the optimal solution in my mind (since it means the whole "loading"/initialization phase must be executed again in this specific environment).
Maybe the answer is to stay away from GWT? :)
Love to hear options, solutions, and advises from you guys.
Thanks