|
Ajax, or AJAX, (Asynchronous Javascript And XML) is a web
development technique used for creating interactive web applications. The
intent is to make web pages feel more responsive by exchanging small amounts of
data with the server behind the scenes, so that the entire web page does not
have to be reloaded each time the user requests a change. This is intended to
increase the web page's interactivity, speed, functionality, and usability.
Ajax is asynchronous in that extra data is requested from
the server and loaded in the background without interfering with the display
and behaviour of the existing page. JavaScript is the scripting language in which
Ajax function calls are usually made. Data is retrieved using the
XMLHttpRequest object that is available to scripting languages run in modern
browsers. There is, however, no requirement that the asynchronous content is
formatted in XML.
Ajax is a cross-platform technique usable on many different
operating systems, computer architectures, and web browsers as it is based on
open standards such as JavaScript and the DOM. There are free and open source
implementations of suitable frameworks.
The core justification for Ajax style programming is to
overcome the page loading requirements of HTML/HTTP-mediated web pages. Ajax
creates the necessary initial conditions for the evolution of complex,
intuitive, dynamic, data-centric user interfaces in web pages—the realization
of that goal is still a work in progress.
Web pages, unlike native applications, are loosely coupled,
meaning that the data they display are not tightly bound to data sources and
must be first marshaled (set out in proper order) into an HTML page format
before they can be presented to a user agent on the client machine. For this
reason, web pages have to be re-loaded each time a user needs to view different
datasets. By using the XMLHttpRequest object to request and return data without
a re-load, a programmer bypasses this requirement and makes the loosely coupled
web page behave much like a tightly coupled application, but with a more
variable lag time for the data to pass through a longer "wire" to the
remote web browser.
For example, in a classic desktop application, a programmer
has the choice of populating a tree view control with all the data needed when
the form initially loads, or with just the top-most level of data—which would
load more quickly, especially when the dataset is very large. In the second
case, the application would fetch additional data into the tree control
depending on which item the user selects. This functionality is difficult to
achieve in a web page without Ajax. To update the tree based on a user's
selection would require the entire page to re-load, leading to a very jerky,
non-intuitive feel for the web user who is browsing the data in the tree.
|