For a couple of years now we have been living with Ajax and other similar web 2.0 techniques in order to ask for or send content without refereshing a whole page. It's pretty standard in slideshows, autosuggest enabled search fields, infinite scrolls and so on.

The main benefits are a faster and a more seamless experience much closer to what we have with native apps.

But why don't we utilise the techniques more? It is possible to build whole sites that relies upon this technique.

If we for a moment dont care about the technical challanges that comes with a implementation as such - are there any good reasons not to ditch the standard full page refresh and switch to only get the content the user want?

  • 1
    I believe all single page apps do that.. – Prasanna Aarthi Apr 16 '14 at 12:35
  • 5
    One reason - until WAI-ARIA regions start getting used far more, is accessibility. If only a section of the page is updating and not the full page then screenreader users won't be alerted to any changes that have happened on screen. – JonW Apr 16 '14 at 12:35
  • That's a good point. I've only thought about accessibility and ajax in terms of progressive enhancement but you could of course use a screen reader and have javaScript enabled. – Tony Bolero Apr 16 '14 at 15:17
  • 1
    Also Ajax requires JavaScript and auto-refreshes are not totally reliable. The SE notifications for example don't always survive my machine going to sleep and waking again. Almost always need to do a full page refresh to get it going again. Also: try voting moving to another page and then moving back. Your vote seems gone until you reload the page. Most JavaScript/Ajax functionality simply isn't designed or implemented robust enough to cope with everything someone can do in a browser. – Marjan Venema Apr 16 '14 at 19:40

It bears being said:

The reason to stick with it is because it is the standard, and standards are empowering.

A 'browser' is a complex class creature. It includes screen readers and other systems for non-standard display. If you haven't read what Accessibility is about, check chapter 3 of the Government usability guidelines

Remember that accessibility is also about Information Architecture. Pages flow as logical pieces in a graph of knowledge. This affects search engine spiders as much as people.

This answer is pedantic. You could have all this in mind, and simply be talking about the AJAX case where you load a page, swap the main content, and change the location (to not break the back button).

But you don't say this, and by being fuzzy on the important foundations, such thinking gives way to lots of partial-load activity that may not be well-engineered into your site's knowledge graph.

| improve this answer | |

You asked why we don't use AJAX techniques more: to me the key is in the word 'rely' that you used later in that paragraph. AJAX relies on JavaScript; some users disable JavaScript in their browsers, for whatever reason, which precludes them from viewing AJAX-driven content as intended, meaning you would still need the standard refresh as a fallback.

The enabling and disabling of JavaScript in browsers isn't a 'technical challenge' as much as it is a user preference, so it is difficult to disregard, but hypothetically I would like for the standard refresh to become a thing of the past. I much prefer the seamless experience, and in my ideal world, all interfaces would work asynchronously. But that's just me!

| improve this answer | |

Nobody seems to mention search bots and SEO. Standard applications load their pages in full when browser URL changes and execute Javascript (if enabled) from that point on. Search bots don't have Javascript but they can still see page content.

Single page applications on the other hand manipulate browser location without full page loads. They often issue Ajax requests along with URL changes, but that's totally optional. Basically all page loads are issued through Javascript.

Implementing single page applications that are SEO friendly is a cumbersome task to say the least. Most of the time it's a pain and an additional development effort.

| improve this answer | |

A few of the developers I work with have talked about using "lazy loading" as a way to break up that initial page load into smaller chunks. For example if you look at:


as you scroll down the page it loads more content. The idea is not only to make the site load faster by breaking it up into smaller chunks (which I'd make the assumption it was for better use on mobile devices), but you are delivering content an as a user progresses they are showing they are interested in more content and so you load some more for consumption.

On another note, when you refresh an entire page versus dynamically changing what is presented to the user, then the experience is more homogenous. Reloading the browser, in my mind, is creating a kind of "breaking" where an action is having to occur that is almost like an interruption. If you can remove this and only dynamically change, or filter, what you can then the user doesn't feel like they have an experience that is broken up with these pauses while the webpage reloads.

http://www.nngroup.com/articles/113-design-guidelines-homepage-usability/ http://www.cs.swarthmore.edu/~bylvisa1/cs97/f13/Papers/p101-pilgrim.pdf (not directly related but looks at ajax in general)

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.