Introduction
This article will be exploring synchronous and asynchronous communication as well as their advantages and disadvantages of them.
Moreover, I will talk about when you want to use synchronous or asynchronous communication.
Sync vs. Async. The Difference.
The left one refers to sync, and the right one refers to async.
Sync:
The major difference between them is synchronous communication sends one request at a time and receives one response from the server. So, we can say that the response and request are made at the same time.
Synchronous communication requires users to refresh the web page to see the new data.
Async:
On the other hand, the asynchronous communication is the opposite. The response does not have to be made right after the response is made. But, it "promises" that the response will be sent.
Users do not need to refresh the page to see the new data.
Furthermore, async allows running other programs even though the request has not been received.
Performance Difference Between Sync and Async:
Synchronous Communication
Advantages:
It is easier to code and understand the code.
Synchronous communication is more straightforward than asynchronous communication because one request is made at a time.
It ensures the order of responses because a response must be made for a request. Then, another request can be made. More than one request cannot be sent at the same time.
Disadvantages:
Before the response is made, you cannot run other programs, all you can do is just wait.
It might cause a bad user experience (UX) because the page blinks when it is refreshed.
Asynchronous Communication
Advantages
Other programs can be run while requests are being made.
It does not re-load the entire web page. It will only update the necessary parts, so your website is more optimized.
It can enhance the UX because the screen does not blink.
Disadvantages:
It is more complex to write a code or the code can be more complex.
The order of response is not ensured. For example, you have sent requests A and B, but the response for B can be done earlier than the response for A.
Which One Should You Use?
It depends on the purpose of your website. If you need to optimize your request and want to update only the necessary parts, you can use asynchronous communication. However, if the order of receiving the data matters, synchronous communication would be better.