During my beginning time, about 2005-2010, usually the processes are held on the server with the MVC pattern with the V page will be compiled and then delivered to the browser for rendering. Any client interaction (to provide dynamism) the browser would submit and then the server would compile again and deliver the rendering page to the browser. This becomes very bothersome to the server – who needs to hold so much data for every user of the page.
And then AJAX came. Sending and receiving data in the background so that the page is ultimately dynamic and never needing to refresh the page. With AJAX, the processes is then transferred from server to client side. This is preferable because this allows for freeing up resources / load from the server as well as gaining re-activeness of the UI to the user.
With technology’s evolution, the server cares and delivers only the data through the server’s REST API (making a true service platform) and then the client translates everything else separately with MVC design pattern.
Another advantage of this is the separation of concern it created. We can then create a mock server or connect to other server that provides the same API the client accepts.