With the new Navigation API, you can now show the native spinner + stop button for any asynchronous operation - all you need is a Promise.
@developit So the user can hit the Stop button to cancel whatever is loading? It would be easy for them to accidentally hit Reload if the thing finishes (promise resolves) a moment before the user expects.
I actually think the loading indicator and reload button being reliably controlled by the browser is what makes them so great. If the site can control it, my trust goes down.
Plus the loading indicator kinda has negative connotations (this site is slow).