1. A method, comprising: at a client, receiving user input that performs a change that requires an operation to be performed on a server; in response to the user input, perform the following steps on the client: generating a request for the operation to be performed on the server; generating a data structure that includes a call back function that is to be invoked in response to receiving from the server a response to the request; and sending the request to the server; wherein the client does not block while waiting for the response from the server to the request, thereby allowing one or more operations to be performed at the client after the client sends the request and before the client receives the response to the request; receiving from the server the response to the request; and in response to receiving the response, invoking the call back function contained in the data structure that was generated upon the user input.