We've made enormous strides in the performance of our application. Our JavaScript is now split into smaller chunks based on the routes of our application, and we've deferred loading the less important bits until our app has some idle time. We've also introduced progressive enhancement to show our users content as soon as possible, and learned a lot about how to analyze our app's performance according to RAIL metrics.
However, there remains one central, core inefficiency in our web application. If our user leaves our page to go elsewhere (I know, how dare they) and then returns, we repeat the same process all over again: download the index.html, download the different JavaScript bundles, download the images, and so on.
We're asking our user to download the exact same files, over and over and over, every time they visit the page. Their device...