Real-time updates, differential updates, cacheable partials, free distributed rendering, to name a few.
Specifically in the realm of cacheable partials, every single site out there that repeats elements between pages could benefit as a well-architected SPA. It's analagous to h.264 vs GIF: you can compress/cache the similar chunks and only update the deltas and save bandwidth, making your platform more scalable. Sure, GIF can compress each individual frame, but h.264 improves on that dramatically by compressing in another dimension. The essence, in my mind, of the SPA is keeping your HTTP requests DRY.
I'd have to say the Discourse project (http://discourse.org) provides a fantastic counter example to this. It shows what can be achieved when SPAs embrace the URL and a lot of thought is put into how the modern browser features can be used to improve the user experience rather than just jumping on the bandwagon.
Example forums:
http://meta.discourse.org http://discuss.atom.io http://discuss.emberjs.org
I just do not see any benefits going SPA style when working with data that is essentially collection of documents.
Especially if you're in Europe (I get a ping time of 24 msec from Switzerland), the pages load nearly instantly. It's actually the sort of thing that you notice and go "whoa" it's so fast.
Yet there's nothing special about it. It's just a regular web server, written in D, that serves pages really fast (probably out of cache).
If you use HTTP caching and compression appropriately, and keep your design light, there's no particular reason you need to use Javascript to speed things up.
This sort of design element occurs way too often. I call them Tantalus footers, because they're always just out of reach. It also makes me wonder if the people who designed these things actually tried using them under real-life conditions.
Saying Nothing is to be gained is going a bit far. This is an interesting experiment, with some novelty, that will be iterated upon. I presume that the bugs will also be fixed.
EDIT - just checked and it does a moderately good job without javascript: "Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode."
This is probably an acceptable compromise. Just to clarify - I'm not arguing that everything should work with js disabled - just that it's a good litmus test for whether a website is fairly robust with regard to normal HTTP behaviour.
What do you mean? I've tried on Firefox (Beta) and Chrome on my Nexus 5 and it seems to work fine for me.
This should be carved into the desk of every webdev on earth.
Kinetic scrolling on Firefox for Android is broken. Do not fiddle with scrolling when doing web development, ever. I guarantee that you will fail.
Front page forgets the scroll position when coming back with back button (Firefox, Windows 7).
When you do AJAX stuff (or websockets or anything else not plain HTTP GET that browsers do when you click normal link), always show progress indicator right after you user clicks something. Now when the site is slow (because of HN effect?) user is shown blank page while the page is changing. All I can see is the top bar and the grey background after clicking any link. It takes 2-3 seconds before anything visible shows up. During this time always show some progress indicator.
Going back and forth quickly occasionally gives user a wrong page. For example right now my URL bar shows https://community.nodebb.org/topic/7/nodebb-plugins but content is a post by quahfamili posted 12 months ago with title Testing.
Bulletin board system gains nothing from "single page application" style architecture, it is a collection of documents, stick with it.
EDIT: Also, when using infinite scroll, do not put anything in the page footer. Now when the pages have copyright info and couple links in there, I can see those only for a split of a second before new content appears. Makes me go crazy.