An
Ajax framework is a
framework that helps to develop web applications that use
''Ajax'', a collection of technologies used to build dynamic web pages on the client side. Data is read from the server or sent to the server by JavaScript requests. However, some processing at the server side may be required to handle requests, i.e., finding and storing the data. This is accomplished more easily with the use of a framework dedicated to process Ajax requests. The goal of the framework is to provide the Ajax engine described below and associated server and client-side functions.
Benefit of a framework
In the article that coined the "Ajax" term, J.J. Garrett describes the technology as "an intermediary...between the user and the server."
[Ajax: A New Approach to Web Applications February 18, 2005] This Ajax engine is intended to suppress the delays perceived by the user when a page attempts to access the server.
A framework eases the work of the Ajax programmer at two levels: on the client side, it offers JavaScript functions to send requests to the server. On the server side, it processes the requests, searches for the data, and transmits them to the browser...
Some frameworks are very elaborate and provide a complete library to build web applications.
Types of frameworks
Ajax frameworks can be loosely grouped into categories according to the features they offer and the skills required of the user:
Direct Ajax frameworks
These frameworks require HTML, CSS and Ajax expertise: a developer is expected to author pages directly in HTML, and framework APIs deal directly with HTML elements. Cross-browser APIs are provided for a variety of purposes, commonly including communications, DOM manipulation, event handling, and sizing/moving/animating HTML elements.
These frameworks are generally smaller. They are commonly used for a web site such as a shopping experience, but not for a web application such as web-based email, at least not without further frameworks layered on top.
Ajax component frameworks
These frameworks offer pre-built components, such as tabbed panes, which automatically create and manage their own HTML. Components are generally created via JavaScript or XML tags, or by adding special attributes to normal HTML elements. These frameworks are generally larger, and intended for web applications rather than web sites.
Some component frameworks require the developer to have extensive HTML/CSS/Ajax experience and to do cross-browser testing. For example, grids, tabs, and buttons may be provided, but user input forms are expected to be authored directly in HTML/CSS and manipulated via Ajax techniques. Other frameworks provide a complete component suite such that only general XML and/or JavaScript abilities are required.
Ajax component frameworks can enable more rapid development than direct Ajax frameworks, but with less control, hence it is key that an Ajax component framework provides the following:
customization APIs, e.g., an event that fires when the user stops editing within a grid
skinning facilities, where appearance can be changed without affecting behavior or layout
programmatic control, e.g., dynamically adding tabs or dynamically creating components based on user data
extensibility—creation of new components based on other components, so that the benefits of a component-based framework are not lost
Server-driven Ajax frameworks
Several frameworks offer a server-side component-based development model with some degree of Ajax support.
Components are created and manipulated on the server using a server-side programming language. Pages are then rendered by a combination of server-side and client-side HTML generation and manipulation. User actions are communicated to the server via Ajax techniques, server-side code manipulates a server-side component model, and changes to the server component model are reflected on the client automatically.
These frameworks offer familiarity for server-side developers at the expense of some degree of power and performance. Ajax frameworks that handle presentation completely within the browser offer greater responsiveness because they handle many more user interactions without server involvement. In a server-driven model, some UI interactions can become chatty, for example an input field that is dynamically enabled or disabled based on server-side code may cause many network requests. Furthermore, server-dependent Ajax frameworks will never be able to offer
offline support. Still, this approach is popular, especially in situations where the benefits of a full Ajax architecture can't be captured anyway.
Extending such a framework may require the developer to understand which parts of the presentation are handled on the client vs on the server, and to write a mixture of Ajax and server-side code.
Examples include frameworks that offer Ajax for
JSF.
Frameworks by language/platform
Javascript
Javascript Frameworks are browser-side frameworks very commonly used in AJAX development.
Some examples of open-source javascript frameworks are:
Clean AJAX AJAX framework also able to deal with Web services.
Dojo Toolkit Modular Javascript toolkit.
Ext (javascript library), A library that extends Prototype, Jquery and YUI.
jQuery, a Javascript framework that provides an Ajax framework and other utilities, such as visual effects.
Prototype, a JavaScript framework that provides Ajax and other utilities.
qooxdoo, an AJAX web application framework. It is multipurpose and includes a GUI toolkit.
Script.aculo.us, Based on the Prototype Framework. Mainly used for interface development.
Spry framework, an Ajax framework developed by Adobe that is geared toward web designers.
Yahoo! UI Library, a set of utilities and controls, for building richly interactive web applications using techniques such as DOM scripting, DHTML and AJAX.
C++
C++ Toolkits are interfaces to AJAX technology
Wt, Wt(witty) is a WebToolkit, allowing programmers to write code in C++ (without knowledge of real AJAX), generating content rich AJAX GUI. OpenSource Licence.
Java
Such frameworks permit the use of Java web services interactively with web pages. The most common Ajax specific frameworks are:
DWR, a remoting toolkit (see also Reverse Ajax) and DHTML library
Google Web Toolkit, a widget library with Java to Javascript compiler
ThinWire, open source Swing-like AJAX framework for developing web applications
Echo, a java framework for AJAX servlets
PHP
A PHP framework is able to deal with database, search data, and build pages or parts of page and publish the page or return data to the XMLHttpRequest object.
PHP 5 specifically, thanks to its SimpleXML class, is able to create XML files that may be returned to the object. However, it is better to use a predefined library that performs the various tasks.
Xajax uses only the XML format, on the server side.
Sajax Is a PHP framework with a lot of functions, easy to integrate functions yourself.
Notes