Usually in web applications, the interaction between a user and the web can be described as either client-side or server-side and AJAX shifts interaction squarley to the client-side, meaning that all the data is exchanged on the fly and not behind the scenes.
What this means is that the entire web page does not have to be reloaded each time a user makes a change, thereby increasing speed, interactivity and general usability.
Examples of AJAX
Problems with AJAX
AJAX however does have it’s downsides. One major complaint is that it might easily break the expected behavior of the browser’s back button. For example, users generally expect that clicking the “back” button will undo their last state change – it is unclear whether in AJAX this happens.
Accessibility has also been touted as a major challenge for web developers who are interested in adhering to WAI accessibility guidelines. (note: they are *guidelines*, not rules!) What this means is that developers have to provide fallback options on users on other platforms, or how may be disabled and so cannot use some of the finer controls that AJAX utilises.
Whilst AJAX is being touted for the Rails framework, it can be used in other languages such as PHP, ASP, and .NET.
I think AJAX is at home for content management, and even WordPress 2.0 has started to use it. In a couple of months time, I predict AJAX technologies to be more mainstream in web applications and will be the stepping stone towards the much hyped web 2.0.