My first thought on this is to load extremely basic html, just to display a spinner for the feedback, and then use a library like include.js to dynamically load everything else, making the app responsive while this is happening. Or at least, not completely unresponsive.