Ajax (web technology)

From Citizendium
Revision as of 22:03, 5 August 2008 by imported>Dhawal Sehgal (links)
Jump to navigation Jump to search
Nuvola apps kbounce green.png
Nuvola apps kbounce green.png
This article is currently being developed as part of an Eduzendium student project. One of the goals of the course is to provide students with insider experience in collaborative educational projects, and so you are warmly invited to join in here, or to leave comments on the discussion page. However, please refrain from removing this notice.
Besides, many other Eduzendium articles welcome your collaboration!



AJAX - an acronym for Asynchronous JavaScript And XML - is an emerging web technology that enhances the end users' web browsing experience by streamlining background web content request, as opposed to generating and serving up new pages for every change or update to the web page.

In the article that coined the "Ajax" term, J.J. Garrett describes the technology as

"An intermediary...between the user and the server."

Description

AJAX is not exactly a new programming language, but a new way to implement existing standards. It is essentially more than a single technology. It is a combination of various existing technologies which combine together in new, more powerful ways.
It has the aspects of: -
XHTML, CSS for standards-based presentation.
XML and XSLT for data interchange and manipulation.
XMLHttpRequest for asynchronous data retrieval.
• Document Object Model(DOM) for dynamic display and interaction.
JavaScript for binding everything together.

The premise of AJAX is to allow light weight calls to a web server and update the web page currently displayed without re-rendering the entire page, but only the affected portion(s).
The primary technological breakthrough that enabled AJAX is XmlHttpRequest (XHR), or XMLHTTP ActiveX object(an equivalent mechanism from Microsoft) in addition to JavaScript (older browsers may mimic AJAX's behavior with another technique using JavaScript and FRAMEs, known as Remote Scripting). XHR is a command that allows an application to request data using a script independently of when the user calls for a page refresh. Once the data is fetched, a JavaScript procedure can parse the data and update only the necessary part of the page that requires an update.
There are many libraries that help in the development of AJAX enabled pages. For example, the Yahoo! UI Library, the Google Web Toolkit, or DoJo Toolkit, the ASP.NET AJAX Control toolkit. But in the end it all ultimately comes from XHR.
AJAX has become so popular that is has forced some browsers to implement it natively, without use of COMs such as ActiveX and creating a standard built in object.
AJAX is used to create better, faster, and more user-friendly web applications. Some even say that AJAX applications compete with desktop applications.


Constituents

AJAX may include the use of a range of web technologies such as JavaScript, XML:XML(eXtensible Mark Language), DOM:DOM(Document Object Model) , CSS CSS(Cascading Style Sheets), but does not necessarily mean they are necessary.

An odd fact is that none of the technologies mentioned above are mandatory to create an AJAX page or at least an AJAX like functionality. For instance, one could use an inline frame that contains a document that uses META Refresh to poll and update content on a portion of the inline frame's parent element. XML is just one of the formats the response can be sent and in many cases JSON JSON(JavaScript Object Notation is often an easier and better choice and raw HTML or plain text can be sent as well. Despite its name, AJAX does not have to be asynchronous, and sometimes it is erroneously applied to be a simple function in a JavaScript library.

Benefits

AJAX has come a long way since the time it was introduced. It has become so popular because of the benefits it has over the traditional page wise style of website creation. Some of its major benefits are: -

  • AJAX helps in improving user interactivity with the application interface.
  • AJAX can buffer data before the user actually needs it. This helps in increasing the overall speed of the web application and reduces wait time for the user.
  • Helps in reducing bandwidth requirements for an application as only the data that is needed is requested and transferred – refreshing the entire page is not necessary.
  • AJAX helps in executing queries that take a long time to run. Instead of waiting for the results after clicking the submit button, AJAX can make the data request in the background, while the user can still continually interact with the page.
  • Dynamic data filtering works well with AJAX. An example of the same is the Cascading dropdown control of the ASP.NET AJAX control toolkit.
  • AJAX is really good for form submissions. Feedback can be given to a user as the form is filled. There is no need to wait for the form to be submitted. For example, Hints can be given to a user while he is filling a form.

Drawbacks

In addition to the benefits, AJAX has some drawbacks as well: -

  • The foremost drawback of AJAX is that the browser's "back" button (or equivalent scripting command) does not behave as expected with a traditional page-driven application. Pressing the back button takes the user to the previous page (as AJAX application run on a single page) —which is completely outside of the given application.
  • A similar problem exists with bookmarks. When a user tries to bookmark an AJAX page, only the address of the application is bookmarked; the state of the given application is not bookmarked.
  • Last but not the least, if AJAX is not implemented properly – it can degrade the user performance instead of improving it.

AJAX Application on the Web

  • Google is using the AJAX approach to develop many of its applications. All of the major products introduced by Google over the last few years – Gmail, Orkut, Google maps, Google suggest, Google Groups – are AJAX applications.
  • Many features of Flicker depend on AJAX
  • Amazon’s search engine A9.com applies similar techniques.

These projects demonstrate that AJAX is practical for real-world applications, in addition to being technically sound. Also, Ajax applications can be any size, from the very simple, single-function Google Suggest to the very complex and sophisticated Google Maps.
By seeing these applications, it can be said that AJAX is not a technology that works only in the laboratory, it has a lot more to it.

Examples of AJAX Frameworks

  • Microsoft .NET (Visual Studio)
  • Google Web Toolkit
  • Ruby on Rails (ROR)
  • Echo

References

  • Fresh: nuts and bolts: What does AJAX mean for you? By, Daniel F. Zucker
  • Ajax: A New Approach to Web Applications. By, Jesse James Garrett