14.07.2013 Views

Essentials of Javascript - Cultural View

Essentials of Javascript - Cultural View

Essentials of Javascript - Cultural View

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Ajax (programming) 48<br />

Ajax (programming)<br />

Ajax (pronounced English pronunciation: /ˈeɪˌdʒæks/) (shorthand for Asynchronous JavaScript and XML [1] ) is a group<br />

<strong>of</strong> interrelated web development techniques used on the client-side to create interactive web applications. With Ajax,<br />

web applications can retrieve data from the server asynchronously in the background without interfering with the<br />

display and behavior <strong>of</strong> the existing page. The use <strong>of</strong> Ajax techniques has led to an increase in interactive or dynamic<br />

interfaces on web pages. Data is usually retrieved using the XMLHttpRequest object. Despite the name, the use <strong>of</strong><br />

XML is not actually required, nor do the requests need to be asynchronous. [2]<br />

Like DHTML and LAMP, Ajax is not a technology in itself, but a group <strong>of</strong> technologies. Ajax uses a combination <strong>of</strong><br />

HTML and CSS to mark up and style information. The DOM is accessed with JavaScript to dynamically display,<br />

and to allow the user to interact with the information presented. JavaScript and the XMLHttpRequest object provide<br />

a method for exchanging data asynchronously between browser and server to avoid full page reloads.<br />

History<br />

In the 1990s, most web sites were based on complete HTML pages; each user action required that the page be<br />

re-loaded from the server (or a new page loaded). This process is not efficient, as reflected by the user experience (all<br />

page content disappears then reappears, etc.). Each time a page is reloaded due to a partial change, all <strong>of</strong> the content<br />

must be re-sent instead <strong>of</strong> just the changed information. This can place additional load on the server and use<br />

excessive bandwidth.<br />

Asynchronous loading <strong>of</strong> content first became practical when Java applets were introduced in the first version <strong>of</strong> the<br />

Java language in 1995. These allow compiled client-side code to load data asynchronously from the web server after<br />

a web page is loaded. [3] In 1996, Internet Explorer introduced the IFrame element to HTML, which also enabled<br />

asynchronous loading. [4] In 1999, Micros<strong>of</strong>t created the XMLHTTP ActiveX control in Internet Explorer 5, which<br />

[4] [5]<br />

was later adopted by Mozilla, Safari, Opera and other browsers as the native XMLHttpRequest object.<br />

Micros<strong>of</strong>t has adopted the native XMLHttpRequest model as <strong>of</strong> Internet Explorer 7, though the ActiveX version is<br />

still supported. The utility <strong>of</strong> background HTTP requests to the server and asynchronous web technologies remained<br />

fairly obscure until it started appearing in full scale online applications such as Outlook Web Access,(2000) [6]<br />

Oddpost (2002), and later, notably Google made a wide deployment <strong>of</strong> Ajax with Gmail (2004) and Google Maps<br />

(2005). [7]<br />

The term "Ajax" was coined in 2005 by Jesse James Garrett. [1] However, a patent application covering this type <strong>of</strong><br />

user interface was filed on September 3, 2003, thus predating the term itself by two years. This application resulted<br />

in US Patent #7,523,401 being issued to Greg Aldridge <strong>of</strong> Kokomo, IN. [8]<br />

On April 5, 2006 the World Wide Web Consortium (W3C) released the first draft specification for the object in an<br />

attempt to create an <strong>of</strong>ficial web standard. [7]<br />

Technologies<br />

The term Ajax has come to represent a broad group <strong>of</strong> web technologies that can be used to implement a web<br />

application that communicates with a server in the background, without interfering with the current state <strong>of</strong> the page.<br />

In the article that coined the term Ajax, [1] Jesse James Garrett explained that the following technologies are required:<br />

• HTML or XHTML and CSS for presentation<br />

• the Document Object Model for dynamic display <strong>of</strong> and interaction with data<br />

• XML for the interchange <strong>of</strong> data, and XSLT for its manipulation<br />

• the XMLHttpRequest object for asynchronous communication<br />

• JavaScript to bring these technologies together

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!