Just like Seabizkit mentioned before, one approach involves continuously polling the server while the other method waits for the server to send updates.
For example, if there was only one data update per day, consider the difference between all clients checking every minute versus the server sending a single message to all subscribed clients.
Your question raises a point about the distinction between SSE and Ajax Polling. In Ajax Polling, you have to query the server after each response to check for changes. On the other hand, with SSE, the browser automatically handles these requests for you.
With Ajax Polling, you are actively requesting data at regular intervals to monitor any modifications, similar to refreshing a web page. In contrast, SSE sends notifications to subscribers only when a change occurs.
Polling allows you to query as frequently as desired, while events in SSE notify subscribers only when a relevant change takes place.
Think of it like waiting for a parcel delivery - you could keep calling to check the status every minute, or you could simply wait for the driver to notify you when they are on their way.
Regarding client-server communication initiation, the client sets up an event listener to receive updates from the server. Afterward, the server sends messages to the client whenever the specified event occurs, without the client needing to constantly request updates.
Keep in mind that this explanation offers a broad overview of the concepts, rather than delving into technical details, as your question seemed to focus on understanding the fundamental differences between the two approaches.