If you have used Gtalk, then you might have experienced this scenario.
You see a friend who is online and you double click on that friend which opens the chat popup. As soon as you start typing your message, the friend goes offline.
When this happened to me initially it was really disconcerting. Did the friend not want to talk to me? Why did he go offline just as I was about to chat? These thoughts were irrational, because there is no way someone would know who is about to chat with them. They must stem from the emotional side of the brain. And after a moment some people might even realize this. Another problem caused by this is if I don’t want to send an offline message, and I think a friend is online and type a small message fast and send it. It may go as a offline message. The rational reason is that gtalk takes some time to get updated on status info, and if you act during this window the above mentioned problem occurs. But is there a way to avoid these wasted and frustrating moments? How can the user experience be improved concerning this problem?
The problem here is that Gtalk updates the friends’ information (which includes, offline, busy and not busy status and status message) every once a while. There are two ways of updating such a system. Either the push or the pull. But this problem sure proves one thing the data is not pushed from the google server to our machines. It is our machine which requests the data after every time “t”, and updates the information. This “t” could be constant or a variable. Now there might be a reason why they are using pull instead of push, which I have no way of knowing. Is there a way the user experience can be improved keeping the ‘pull’ way of getting data?
Yes there is. You can chat with someone after you double click on that friend. This is an action which can be tracked. Is google tracking this action? Ideally it should and should update the data as soon as I double click or even hover over a friends icon. From firebug I have seen that each request does not take more than a second. And mostly it is less than 500ms. The time lag I have experience, which is always more than 5 seconds makes me believe, it is entirely time based. Does someone now the details on this one?