In my article about a RESTful SPA I listed a few requirements:
- It should work with rendered HTML instead of JSON.
- It should intercept links and form submissions.
- It should update sections of the page based on the response from the server.
- It should update the browser URL and navigation history.
- It should update the browser title with the title from the response.