Single-Page Application
You have decided that your client application needs increased autonomy. When building on the web, client autonomy is implemented with JavaScript. JS has advanced to the point where you can create an entire client with it, even replacing server-side page transitions completely.
Describe the problem in one or two sentences.
Elaborate the problem and explain the solution.
Therefore: create an entirely client-rendered application which only requires one actual page load from the server, fetching all subsequent data asynchronously. Ensure the client always has enough code loaded to render all screens and interactions needed by the user.
If your client has distinct logical pages or screens, use client-side routing to organise your code. Ensure you use the URL, Luke to make the most of the browser and not defy user expectations.
Layer your code according to Khalil’s advice, using page, controller and presentation components.
In order to support autonomy and coordinate state changes across components, implement some form of centralised state management.