Jan. 22, 2013 | by Albert O'Connor
Pjax keeps rendering of templates on the server side and uses push state and ajax to optimize the user experience by avoiding page refreshes. Blocks of HTML are send from the server and installed on the existing page.
Passing everything off to the client could be viewed as parallel computing. Have 1,000 simultaneous users? Send them small bits of JSON and have each of their CPUs do the template rendering for you. You also have to send the template, but on the whole you send fewer bytes and consume less of your server cpu. Massively parallelized! Awesome right?
I remember reading a blog post once about how you can't make programs faster, no matter what you do the CPU does the same number of instructions per second. The only possible gains come from figuring out how to do fewer things. The best way on the web to do less is cache!
Caching correctly is hard, most users are looking at pages with different combinations of content, but 37 Signals focused on doing it right and have proved with Basecamp that Pjax and caching can be very fast and responsive.