Ajax Intro

Page Updated: Mon, 23 Sep 2019 23:40 AEST (UTC+1000)

Ajax is most usefully conceived as, above all else, allowing the user interact with the page without the need to reload it or load a new page. In other words the page is interactive without blocking the user. We can regard this as the Ajaxian aim.

Ajax can be understood from different points of view: A user's and a developer's.

From a user's point of view a web page using Ajax will appear smoother and faster.

A user doesn't care about how this is achieved. A developer does. From a developer's point of view the coining of Ajax in February 2005 provided a word to neatly package technologies and techniques that already existed. This package described how the developer can provide server communication, after initial loading of the page, that does not block user interaction with the web page.

The technologies in the Ajax package are usually taken to be, at core: Javascript, XML, DOM, XHTML, CSS, and XSLT.

The chief technique entails using Javascript to call a particular object within the DOM that allows background communication with the server. That is, asynchronous communication.

The object is XMLHttpRequest for gecko based and other browsers, eg Firefox and Safari. The object is XMLHTTP for Internet Explorer. XHR is a shorthand for either of these.

Ajax can be thought of as both a superset and subset of the listed technologies. A superset in that it bridges them, enabling a function that can't be achieved with any one of these. A subset in that it's a mere part of what can be achieved with these technologies.

In this way Ajax is an acronym like DHTML, Dynamic HTML.

How is DHTML related to Ajax? DHTML, animating part of the web page, is very much a technique within Ajax. For example animating a progress bar might be used to show the user that server communication is taking place. Expanding a hidden section in response to a user click might remove the need for server communication. In these ways DHTML can aid the Ajaxian aim of making the web page interactive without blocking the user.