TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Forget tacky loading spinners, just use a wait cursor

11 pointsby ptbelloover 13 years ago

8 comments

micheljansenover 13 years ago
Nice idea, but I disagree that this should make us "Forget tacky loading spinners". Loading spinners are a big step forward from wait cursors in that they:<p>- Can be used to show <i>what</i> is loading, especially if you use AJAX to update only part of the screen/content, rather than indicate a global loading state.<p>- Work on devices that do not have a cursor. Touch anyone?<p>- Don't make you feel like you are running Windows 3.1<p>- Don't make you fear your browser/system has frozen.
评论 #3612273 未加载
michaels0620over 13 years ago
One issue I have with this is that due to the commonality of spinners, I associate the wait cursor with waiting on the browser (memory issue, temporary CPU spike, large js script running) rather than an waiting on the results of an ajax request.<p>For me at least, using this technique would probably cause me to perceive the site as being slower or more resource intensive than it truly is.
apricot13over 13 years ago
I just clicked on your demo and my brain instantly though, oh crap my browsers crashed again. Even though I knew it was going to change the cursor to a wait button.
enapupeover 13 years ago
Did this (using jquery):<p>var loadingLayer = { step: 0, add: function(){ this.step += 1; //didn't know how to call checkState() automatically after any other call this.checkState(); }, remove: function(){ this.step -= 1; this.step &#60; 0 &#38;&#38; (this.step=0); this.checkState(); }, clear: function(){ this.step = 0; this.checkState(); }, checkState: function(){ if (this.step === 0){ $("body").removeClass("loading"); } else { $("body").addClass("loading"); } } }; $(document).ajaxStart( function(){ loadingLayer.add(); }); $(document).ajaxComplete(function(){ loadingLayer.remove(); });<p>I know the JS is uggly but i'm not an js expert (it works).
评论 #3613957 未加载
weavejesterover 13 years ago
I vastly prefer loading spinners over wait cursors.<p>A wait cursor usually represents some form of synchronous wait to the entire application. If I get the wait cursor in a native application, there's a good chance that I'll need to wait for it to finish before I can continue my work flow.<p>A loading spinner is often more asynchronous and targeted. If I click the preview button in GitHub, then only that element is being loaded, and it doesn't stop or slow down any other part of the UI.<p>A good UI should be asynchronous; ideally there shouldn't be any operation that locks or slows down the UI. If an expensive operation is taking place, place a busy notifier on the affected elements. Having a wait cursor for the whole application or window seems an anachronism.
jeffehobbsover 13 years ago
No cursors on mobile. So.
startupctoover 13 years ago
There's no cursor for mobile devices so whatever you think works only works for a percentage of users.
urbanjunkieover 13 years ago
Because browser wait cursors tend to make me instinctively cmd-w or cmd-q<p>(close tab or close application for you non macheads)