Ajax loading screens

Right, here’s the thing. Using Ajax technologies is pretty cool. They can help your web application really feel smooth and whippy and quick. Like a desktop application. However: There is no point in using Ajax if you have to pop up a “Loading” screen and wait ten seconds when a link is clicked. Read that again. There’s no point. There is no difference in the UI between “click a link, see a ‘loading’ image pop up, wait ten seconds, the page is rebuilt with the DOM” and “click a link, wait ten seconds, see a new page load from the server”. None. Please, please, stop doing this. If it’s going to take ten seconds to load a page, just load it from the server. That way, the browser takes care of the work, your pages are more likely to be bookmarkable, and it very rarely dies half way through. Picking on Google Reader for a moment, about 10% of the time I click the “All items” link and get the loading div pop up, that loading div never goes away and I have to refresh the whole page using the browser Refresh button. This user experience is no better than using an “old-fashioned” no-JavaScript web app. It really isn’t. Browser manufacturers have spent ten years thinking about what to do when a page load fails, and perhaps how to do some recovery, and users have spent ten years learning how to cope with a ropy and abortive internet. Please, just stop doing this.

15 thoughts on “Ajax loading screens

  1. RochMW says:

    While you’re right that the AJAX way is no better if it fails and you have to refresh the page, there’s one key advantage to not refreshing the entire page, even if the operation takes a long time. That is that you don’t lose the scrolling state of the page when the update is done in place. That’s important in something like Google Reader where you have multiple independent scrolling regions.

  2. sil says:

    RochMW: Mm, I see that point, but the unbelieveable annoyance of the thing doesn’t seem to be outweighed by being able to keep the scroll positions, especially since you could always directly link to thispage.php?y1=428&y2=361 or whatever. It’s not as if these problems would have been unresolvable in a world without Ajax in it.

  3. kevin says:

    I think loading animations are a lot more entertaining to stare at than watching a page render. Also, I think it is irritating to have the option to try and click and do something on a page while it is still loading, only to find out you can’t do anything. Also, if you have a loading screens, people don’t keep refreshing the page if it takes longer than usual to load.

  4. durinmine says:

    I think web designers have to remember that a lot of this stuff can be and has been done with frames and IFRAMEs. I’ve done a few cute “loading…” animations using only frames and light Javascript.

    This kind of pointless applications of AJAX will keep being brought up, but I guess designers will still abuse it just to stay buzzword-compliant until the fad dies out.

  5. [...] Well, I’ve finally got hacked off with Google Reader (not least because I am sick of Ajax loading screens), and started looking around for my own feed reader. (I did this before, but now I’m going to do it properly.) I don’t like gregarius, after trying it, and I remembered that rawdog popped up in a search I did once because it has a plugin that uses templates from my old weblogging system, Vellum. So, I thought I’d give it a shot. It looks good so far; fulfils the few requirements I have for this sort of thing, which are: [...]

  6. Tom W.M. says:

    I fully agree. Google Reader, in paricular, annoys me. It may be blasphemous, but I wish that it had been implemented with frames! That way, I could right click on the “All items” page, select This Frame > Show Only This Frame, and bookmark the page. That I must click “All items” to actually *see* any feeds *every time* I open Reader is ridiculous–the old interface didn’t make me do this, after all.

  7. [...] Maybe I forgot to mention this in my talk about why I hate AJAX but this is a very good point against a lot of AJAX use. If I have to wait for the content I might as well see the whole screen redrawn – it’ll wake me up after the loading is done. If you’re able to guarantee an instant response do it, otherwise don’t. How would you feel about “suggests” that you can see 10 seconds after you typed something? [...]

  8. Jackson Capper says:

    Some people are soooo picky! As soon as the web actually takes on a decent form and actually looks like an exciting dynamic technology experience, people complain and want back their boring 90s viewpoint of the web as a bunch of static HTML documents. If you don’t like ajax, well go back to your desktop applications and hold onto them REAL tight because the web is not going to go backwards.

  9. L E says:

    I agree with Jackson… Embrace the idea of moving computer operations to the web… Every day I find a way to do somthing that I have wanted to do for years… Technology is not linear.
    2 – 4 – 8 – 16 – 32 – 64 – 128 – 256 – 512

    A 1980 ford pickup gets you from a to b the same way a benz does; the benz is alot more comfortable.

  10. nicolas says:

    Make your own Ajax loading indicators with http://www.webscriptlab.com/

  11. EToS says:

    I dont agree actually, even though an ajax page may take 10 seconds to load it still can save bandwidth, now for most people thats nothing, but for people who measure hits in thousands,hundreds of thousands its a very useful tool.

    it can also save server CPU because code for other parts of the site will not need reloading to change a small element of the page (if your site does a lot of initial DB activity like mine does you’ll understand).

    that said, i dont overuse ajax.. and i think anyone who uses it needs to look at how needed it really is before implementing it.

  12. RST says:

    I also welcome Ajax as possible.
    If you do not like these technics, it does not mean that everybody should give up with it. As everybody has it’s own opinion, you have talked your position. But it’s YOUR point of view.
    But much more things here also required from developer. Ajax can also be the technique of prefetching. Than follow that link and it will probably opens much quicker. As I said professional developer can do a lot of useful stuff. Need just a head with a good imagination, and a brain that can make these iseas real. So be possibly careful before saying ‘Stop’.

  13. Martijn says:

    Watching a loading indicator is much more user friendly then letting the browser load it on it`s own.

    Users want a visual reference to what`s happening on the screen. The browser loader top right of the browser is often not seen by people (non-experienced users).

  14. boole says:

    In my case, I would rather user see a loading dialog instead of seeing a white slab wondering where their domain check (which could take a while) submission has gone…. make sense?

  15. NeoNexus says:

    I’m going to try to bring this a spot of life for a moment. Ajax loading back then was horrible. I will give you that. It still is (and I’m talking about this 3 years and a month since the original post was given to the ‘collective’ [I hope someone gets that reference]).

    Anyway, my point is this: even after this long, it’s still a problem. However, web browser makers have come to the same conclusion, and they are working on it as much as any web developer. Hell, we’re finally getting to the point where we can use and tags!!! What a concept!!! It only took how long?!?!?!

    However, we are still creating a machine that is becoming more and more complex every day. The internet has finally done something no other invention could do (or rather a few things): unite groups of people, regardless of location on this planet, even those few not on this planet, and BEGIN to collect, organize, and categorize every bit of information we could ever need… It’s a beast!

    If you’re bored enough (and I’m sure you are if you’re reading my post this far), you really should see what I’ve done with my website (click my name). It’s a site that uses XML to build JavaScript that looks and acts similar to desktop functionality. It uses JavaScript loading screens, and has built-in functionality to correct any problems with loading errors. In other words, if something goes wrong, the loading screen disappears, and you can still use the webpage to try again. You don’t have to refresh because a loading screen is blocking your clicks.

    http://www.codename-coyote.info/

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>