I wanted to share some notes on Ajax and related stuff. Hope it helps to summarize briefly. This blog article will be updated with more information from time to time.
- HTML or XHTML and CSS for presentation
- the Document Object Model (DOM) for dynamic display of and interaction with data
- XML for the interchange of data, and XSLT for its manipulation
- the XMLHttpRequest object for asynchronous communication
With Ajax, web applications can retrieve data from the server asynchronously in the background without interfering with the display and behaviour of the existing page. Data is usually retrieved using the XMLHttpRequest object.
The term Ajax was coined on February 18, 2005 by Jesse James Garrett in an article entitled Ajax: A New Approach to Web Applications.
On April 5, 2006 the World Wide Web Consortium (W3C) released the first draft specification for the XMLHttpRequest object in an attempt to create an official web standard.
The utility of background HTTP requests to the server and asynchronous web technologies remained fairly obscure until it started appearing in full scale online applications such as Outlook Web Access (2000) and Oddpost (2002), and later, Google made a wide deployment of Ajax with Gmail (2004) and Google Maps (2005).
With traditional Ajax Client polling is used. Reverse Ajax describes the implementation of either Client polling or Server pushing models, or a combination of both. The design pattern is also known as Ajax Push, Full Duplex Ajax and Streaming Ajax.
An Ajax framework is a web application framework that helps to develop web applications that use Ajax. The goal of the framework is to provide the Ajax engine and associated server and client-side functions. Types of frameworks, according to the features they offer and the skills required of the user, include,
- Direct Ajax frameworks (require HTML, CSS and Ajax expertise),
- Indirect Ajax frameworks (based on compiler technology, a high-level language is used),
- Ajax component frameworks (offer pre-built components) and
- Server-driven Ajax frameworks (offer a server-side component-based development model with some degree of Ajax support).
Java frameworks use Java for server-side Ajax operations such as Apache Wicket, AribaWeb, Google Web Toolkit, Richfaces etc.
Others are Pyjamas for Python, Wt - a C++ Web Toolkit, ASP.NET AJAX from .NET, Sajax and Xajax for PHP and RJS for Ruby on Rails.