Now, I’m not saying that we shouldn’t load data like this, in fact, I’m all for it. What I am saying, however, is that we need to treat the user experience as a first-class citizen. Clicking on an item, only to click the Back button seconds later, should not require me to re-load all of the content I loaded moments ago. Save it. Restore it. Remember what I was doing. Please.
Some of you will argue that those clicks should instead have been accompanied by pressing Ctrl so that it opened in another tab, or perhaps even right-click on the link and choose “open in new tab” from the menu. Yes, you can do that. But that is a solution to interacting with a BAD user interface, nothing more. My mom is not going to do those things, and neither is every other non-technical user your application is meant for.
We, as developers, rarely take the care that is necessary to make our interfaces intuitive, familiar, and helpful. Instead, we wrote the code that met the requirement.
Who will think of the users? What other examples of bad async have you encountered?