The term AJAX was coined by Jesse J. Garrett in 2005. Ajax, which stands for Asynchronous Javascript and XML
Used for creating interactive web applications or rich Internet applications and Update pages “on the fly”. It is also used to retrieve data from the server asynchronously in the background. Ajax is a way of developing Web applications that combines:
- XHTML and CSS based presentation
- Interaction with the page through the DOM
- Data interchange with XML and XSLT
- Asynchronous data retrieval with XMLHttpRequest
- JavaScript for dynamically interacting with the information presented
- XML, XSLT object to manipulate data asynchronously with the Web server.
JRuby 1.3.1 is the latest release
Advantages
- Speed and invisibility makes for a very slick user experience.
- The smaller server resources footprint helps server scalability.
- Reduce bandwidth.
- More interactivity.
- More complex applications (e.g. email clients)
- Fast and flexible to more robust and manageable
- Specialized skills vs existing skills
- Client based to more server centric
- Design of Server push capability
- Degree of built in Security
- Approach to scalability
- Library of rich components
- Interoperability with other solutions
Highlights in AJAX
- Seperation between data, view, controller, style, state, language, layout
- Property binding / Dynamic attributes
- Authentication abstraction ,Skinning abstraction
- Realtime skin,language switching
- Data instruction format for easy retrieval and storage of data
- Sorting, printing and date library
- Several rendering methods for easy integration in existing web projects
- Virtual viewport abstraction to support large datasets (experimental)
- Standards compliant (DOM, DOM Events, XForms, CGI, SOAP, XMLRPC, XSLT, XPath, XML Schema, JSON, HTTP, HTML, CSS)
- Smartbindings – Two-way databinding to local and remote data.
- Three layout methods (Alignment, Anchoring, Grid)
- Auto generation of language files, at any time during/after application development.
- Drag and drop automation between components
- Decent animation library
- Debug tools including in debug package (including data viewer, log viewer and profiler)
- Namespace support for in HTML documents loading
- Package size is completely controllable by using the free packager too
- Fully generalized API’s by using element traits.
- J Markup Language with W3C DOM support (including DOM Events).
- Support for locking remote resources
- Dockable layout
- JSLT templating language for easier conversion from xml to html
- Offline storage solution using all popular providers (incl. html5, gears, flash)
- Browser abstaction offering same API for all browsers (for xml dom, xpath selection, etc)
- Fully optimized renderer
- 60 components
- Single interace for any webservice protocol (SOAP, XMLRPC, JSONRPC, CGI, etc)
- GUI transaction support (experimental)
- Native undo / redo support
- HTML5 form validation with validation grouping and form automation
- Resizable and draggable components for runtime UI customization
- Back button control abstracted for all browsers implementing onhashchange
- Advanced focus handling between components and between browser and operating system
- Tight memory management by caching, reuse and cleanup
- Application wide settings
Features
More interactive and productive interaction
- Ajax is about how to deliver information to end users in a way that is easier to understand, delivered faster and in a more intuitive way and for users to be able to communicate back to a host system more effectively.
- Ajax breaks the traditional web interface where everything happens at the page level and nothing happens until the user requests information. Intuitively.
Real value add of Web 2.0
- Ajax is now referred as the real value add of Web 2.0, the core capability for delivering SOA, mash-ups and highly collaborative and other web 2.0 applications.
Upgrade of existing application or new application
- Ajax techniques apply very well to most existing applications and can provide a very fast incremental improvement to an existing application. The frame work is equally valuable for upgrades to existing applications and for new applications.
The Basics: Core interaction requirements
- The number and frequency of full page requests that can be replaced with small data exchanges will reduce user wait time and improve productivity in a measurable way.
- High rate of error on full page inputs or a large number of full page inputs will benefit from the real time field level editing of Ajax.
- Bandwidth consumed for the entire task. Traditional interfaces can absorb large amount of bandwidth slow response times and eat cpus
- In short, the more the application is highly time dependent with many small interactions the ROI of Ajax increases.
The size of the user population
- Ajax benefits both small and large user populations
- In general the larger the user population the greater the need for a framework that easily scales and can be readily maintained
Mission critical nature of the application
- The greater the strategic value of the application, the greater the investment in RAS required.
- Highly mission critical applications may be less desireable early candidates, but offer the highest ultimate return.
Application architecture considerations
- Ajax increases the feasibility of an effective SOA architecture.
Real time nature of the underlying application
- Real time monitoring and realtime or near realtime business applications benefit significantly from Ajax.
- JavaScript allows replacing content without refreshing the page (for example, using the ) .
- The requested website can be a server-side script which might access databases or other complex functionality.
- Complex content can be sent as XML (processed by DOM) or as JSON.
- * JavaScript allows replacing content without refreshing the page (for example, using the ) . * The XMLHttpRequest API facilitates retrieving content from server-side files or remote websites.
- The XMLHttpRequest methods can run in separate threads,
Conclusion
Ajaxhas changed the face of the web forever.The interface is much more responsive, as explained before, because only a small part of the page is transferred at a time. The user has the feeling that changes are instantaneous.
- In a classic web application, when the web server sends a web page to the browser, it can use multiple connection threads to speed up delivery. However, this happens for content only – what is between the tags. All script and CSS files linked in the page’s section are transferred using only one connection thread, which deteriorates performance. With AJAX, you only have to load the basic scripts and CSS files, and request the rest as content, through multiple connections.
- Waiting time is reduced – when the visitor submits a form, they don’t have to wait for the entire page to be rebuilt and re-transmitted by the server. Instead, only the relevant content changes, and in non-critical cases, the visitor can still work while the data is being submitted.
- If a page section encounters an error, other sections are not affected unless logically linked and the data already entered by the user is not lost.
