AJAX - Asynchronous JavaScript And XML

AJAX, Asynchronous JavaScript And XML (asynchronous JavaScript and XML), is a web development technique for creating interactive applications or RIA (Rich Internet Applications).

These applications run on the client, that is, on the users browser while maintaining asynchronous communication with the server in the background. This way it is possible to make changes on the pages without having to recharge them, improving the interactivity, speed and usability in the applications.

Ajax is an asynchronous technology, in the sense that additional data is requested from the server and is loaded in the background without interfering with the display or behavior of the page. JavaScript is the scripting language in which the Ajax call functions are normally performed while access to the data is done using XMLHttpRequest, an object available in current browsers. In any case, the asynchronous content need not be formatted in XML.

Ajax is a valid multi-platform technique and can be used in many operating systems and browsers since it is based on open standards such as JavaScript and Document Object Model (DOM).

Ajax is a combination of four existing technologies:

  • XHTML (or HTML) and Cascading Style Sheets (CSS) for the design that accompanies the information.
  • Document Object Model (DOM) accessed with a user scripting language, especially ECMAScript implementations such as JavaScript and JScript, to dynamically display and interact with the information presented.
  • The XMLHttpRequest object to exchange data asynchronously with the web server. In some frameworks and in some concrete situations, an iframe object is used instead of XMLHttpRequest to perform such exchanges. PHP is a general-purpose server-side scripting language originally designed for web-development of dynamic content also used in the Ajax method.
  • XML is the format generally used for the transfer of requested data to the server, although any format can work, including preformatted HTML, plain text, JSON and even EBML.

Like DHTML, LAMP or SPA, Ajax is not a technology in itself, but a term that encompasses a group of these working together.

Although the term "Ajax" was created in 2005 by Jesse James Garrett, [1] the history of technologies that enable Ajax dates back a decade earlier to Microsoft's initiative in developing Remote Scripting. However, techniques for asynchronously loading content onto an existing page without requiring full reloading go back to the time of the iframe element (introduced in Internet Explorer 3 in 1996) and the layer element type (introduced in Netscape 4 in 1997, abandoned during the early stages of development of Mozilla). Both types of element had the src attribute that could take any external URL, and loading a page that contains javascript that manipulates the paternal page, Ajax-like effects can be achieved.

Microsoft's Remote Scripting (or MSRS, introduced in 1998) was a more elegant substitute for these techniques, sending data through a Java applet which can communicate with the client using JavaScript. This technique worked in both browsers, Internet Explorer version 4 and Netscape Navigator version 4. Microsoft used it in Outlook Web Access provided with version 2000 of Microsoft Exchange Server.

The web developer community, first collaborating through the newsgroup microsoft.public.scripting.remote and then using blogs, developed a range of remote scripting techniques to achieve the same results in different browsers. The first examples include the JSRS library in the year 2000, the introduction to the image / cookie technique in the same year and the JavaScript on Demand technique in 2002. In that year, a modification was made by the user community to Microsoft's Remote Scripting to replace the Java applet with XMLHttpRequest.

Remote Scripting Frameworks such as ARSCIF appeared in 2003 shortly before Microsoft introduced Callbacks in ASP. NET.

Since XMLHttpRequest is implemented in most browsers, alternative techniques are rarely used. However, they are still used where greater compatibility, reduced implementation, or cross-site access is required. An alternative, the SVG Terminal (based on SVG), employs a persistent connection for the continuous exchange between the browser and the server.

Pages dynamically created by successive AJAX requests are not automatically registered in the browser history, so by clicking the "back" button of the browser, the user will not be returned to an earlier state of the page, instead you can go back to the last page you visited. Solutions include the use of invisible IFrames to trigger changes in the browser history and the change of the anchor portion of the address (after a #).

Search engines do not parse JavaScript. The information in the dynamic page is not stored in the searcher's records. Except Google, which since 2011 index Ajax content and JavaScript. Matt Cutts (director of Google's web spam department) confirmed it on Twitter: "Googlebot keeps getting smarter. Now you have the ability to run AJAX / JS to index some dynamic comments. "

There are problems using Ajax between domain names, this is known as Same Origin Policy, which is a security measure, which can be solved with Cross-Origin Resource Sharing (CORS).

Depending on how the website is developed, you can improve or worsen the load on the server. Ajax can help the server avoid the html rendering phase, leaving that work to the client, but it can also overload the server if several calls are made to Ajax.

It is possible that pages with Ajax can not work on mobile phones, PDAs or other devices. Ajax is not compatible with all software for the blind or other disabilities.

Browsers that allow Ajax

It should be noted that this is a general list, and support for Ajax applications will depend on the features that the browser allows.

Gecko-based browsers such as Mozilla, Mozilla Firefox, SeaMonkey, Camino, K-Meleon, IceWeasel, Flock, Epiphany, Galeon and Netscape version 7.1 and above

WebKit-based browsers such as Google Chrome from Google or Apple Safari.

Microsoft Internet Explorer for Windows version 5.0 and above, and browsers based on it

Browsers with the KHTML API version 3.2 and above implemented, including Konqueror version 3.2 and above and the third generation Web Browser for S60 and later

Opera version 8.0 and above, including Opera Mobile Browser version 8.0 and higher.

Navigators that do not allow Ajax [edit] source edit] Opera 7 and earlier

Microsoft Internet Explorer for Windows version 4.0 and earlier

Before Safari 1.2


Text-based browsers such as Lynx and Links

Browsers for people with special visual abilities (Braille)

Some mobile phone browsers

PSP Browser


Google Translate Widget by Infofru

Author Site Reviewresults