interfaces should be completely non-blocking. Interactions should be resolved instantly; there should be no loading messages or spinners. Requests to the server should be decoupled from the interface.
The key thing to remember is that users don’t care about Ajax. They don’t give a damn if a request to the server is still pending. They don’t want loading messages. Users would just like to use your application without any interruptions.