Loading video...

Video Failed to Load

Go Home

With the new Navigation API, you can now show the native spinner + stop button for any asynchronous operation - all you need is a Promise.

332,179 views • 3 years ago •via X (Twitter)

10 Comments

sam "zero​width​space" thor's profile picture
sam "zero​width​space" thor3 years ago

I've been doing this for years!

Jason Miller 🦊⚛'s profile picture
Jason Miller 🦊⚛3 years ago

isn't there an iframe version of this approach as well? I seem to recall doing the opposite (using a hidden iframe for <form> post) decades ago, and being annoyed that the loading spinner kept toggling on/off.

Thomas Shaddox's profile picture
Thomas Shaddox3 years ago

More about this here:

Domenic Denicola's profile picture
Domenic Denicola3 years ago

@mathias I'm a little worried about the accessibility announcement this will generate... Maybe it's fine if you're largely using it for full-page effects that deserve a "loading" announcement anyway?

Andreas Finger's profile picture
Andreas Finger3 years ago

Please only do this with sufficient delay (300ms or so) to allow for most round-trips on a good connection to resolve before showing the spinner on every click! Otherwise your page will feel slower and somehow broken.

Gustavo's profile picture
Gustavo3 years ago

Now let’s wait for Safari as it’s not polyfillable 🙃

Éliette 🏳️‍⚧️ @elipriaulx.bsky.social's profile picture
Éliette 🏳️‍⚧️ @elipriaulx.bsky.social3 years ago

@noseratio Is there a chance you could click the 'stop loading' button a fraction too late and inadvertently refresh the page?

Robert Vitonsky's profile picture
Robert Vitonsky3 years ago

Wow, it's disgusting. Now user even can't be sure the cause of appearing of this spinner. Because it may be because resources still loading (default behavior) or maybe some developer enable it just for fun or due to bug

Ricardo B�nffy -'s profile picture
Ricardo B�nffy -3 years ago

I can't avoid hating this idea - the spinner and everything outside the page belongs to the browser user and needs to reflect the browser's state. These UI elements need to be trusted by the user and making them accessible this way to code on the page breaks that trust.

Ryan Rampersad's profile picture
Ryan Rampersad3 years ago

very cool

Related Videos