Instantaly color changes when you hit Facebook like button.we all know it doesn't happen so fast. it is fake. But you tube like icon change color with little delay (depends in connection). I have similar situation with my shortlist button in hotel application. Should I fake or not?
You're asking whether actions which need to be sent to the server should be shown to happen instantaneously, or after a delay as you wait for the confirmation to be received back by the client/interface.
If you wait for the confirmation to be received back before you show anything, which could happen close to instantly or after several seconds, users will face a delay which they have to interpret. Has the application frozen? Did I even click it?
In my view, you need to ensure that...
- The user's action has immediate visual feedback
- The user is made aware of any errors if the action fails. Some may argue that you need to show the 'status of the system' which is one of Nielsen's Heuristics, which would be showing that the action is 'processing', though i'm not convinced of the value in this case, but I'll show that option here anyway.
Showing processing before completion
I whipped up this example just to see what it could look like. Here the processing state is shown, and once the action has definitely happened, then the action completes.
Here are some things to consider about your app and the particular action being performed, and why this option might not be a good idea.
- When data is sent, it's sent more or less immediately - what percentage of the time will the action not be received, the confirmation not received, or fail?
- If it does fail, how much of a problem is it if the action gets re-sent X minutes later once the connection improves?
- If it's an app, will the user just interact with the local data mostly anyway? How important is it that the data hasn't been synced to the server?
Immediate completion - Twitter's Like button
Here feedback is immediately provided after the user hits the heart icon. You can see that about a half second later the actual response from the server is received with the updated counts for re-tweets, likes and comments. If the action failed then I would expect the heart to either return to its original state with a message that the action failed, or for the action to be retried in the background until it succeeded.