Ajax Frameworks
The best technology to build dynamic web pages is Ajax. JavaScript code embedded into the HTML page is used to send requests to the server. At the server side, some processing is required to handle them, find the info or store the data. To do that, we need for a specialized framework. The framework has always a JavaScript part, and sometimes a server side part in another scripting language. A lot of them exist in various programming languages, in all environments around, but we retain here only the most widely used.
Why a framework?
Actually, this framework is the Ajax engine described by J. J. Garrett and
intended to suppress waiting for the user when accessing the server.
The framework provides classical, cross-browser functions to use the XMLHttpRequest
object. But a framework may goes beyond that, and allow to build "rich
web applications", applications with a graphical user interface and other
features of desktop software that run through a browser, while exchanging
data with a remote server.
Features of an Ajax framework
Any Ajax framework is able to communicate with the server, and thus, to read
data or to send it data or commands. In the last case a server-side script
is required.
The frameworks often add components that make use of the asynchronous communication
with the server.
The classical examples are buttons, tabbed panels, grids, listboxs and other
such widgets.
A more innovative example, the "boxes", are more and more often
implemented, and Lightbox and Slimbox are two of them. There are image galleries
that place them side by side on the screen and that are making use of Ajax
to display them instantanously .
Framework may be server-driven also, and in this case, component are created on the server with a scripting language such as PHP, and sent to the browser. Ajax is used to transmit user actions to the server part, and to handle the results.
The ability to work offline as it is offered by HTML 5 is a complement to the Ajax framework as well.
What Ajax framework to choose?
You want to use an Ajax framework to make dynamic pages without having to rewrite the whole stuff youself and test it on all browsers...
But they are so numerous that you wonder which one to use. You want not make a bad choise and be forced later to redo all the pages with a different framework!
You are less likely to regret the choice of a framework if you adopt one of the most used because they are continually supplemented by new extensions and have a good support by users.
Among these, there are jQuery, well documented, Mootools that is modular, Ext JS offering many widgets for RIA.
The interaction with a server side language also should guide the choice.
JavaScript libraries
Many Ajax frameworks and libraries rely solely upon JavaScript and contain
no server components and therefore server technology dependencies.
Most of them use XML as data format, and sometime JSON, another textual format.
But all these simple JavaScript frameworks date a bit, it is more common now to use React, Angular or Vue.js all of which allow access to a database.
- jQuery.
JavaScript library with Ajax support and has has full access to the DOM. JQuery is included in the Wordpress and Drupal CMS.
It provides a complete documentation.
jQuip is a more modular version of JQuery with only 4k for the core code. - Closure.
The Google's JavaScript framework comes along with a compiler and a template system to help generating pages. Overview. - Prototype.
Is the base of several other frameworks including that of Yahoo. Its goal seems to be in reducing the size of Ajax Code. - Script Aculous.
One of the first frameworks, Script Aculous soon developed many dynamic and graphics effects to liven up Web pages.
Libraries from latest competitors are better optimized. - Mootools.
Another toolkit as JQuery, includes graphical effects.
Mootools has features similar to jQuery. It is modular. Many extensions provide graphical widgets such as Lightbox, image galleries ... - ExtJS.
JavaScript platform for rapid development of applications, conformant to Web standards. Provides a set of graphic components.
Dedicated to rich web applications, the RIAs, Ext JS has many plugins and user interface components, the widgets.
In addition it can easily be combined with another framework (it should be reciprocal), or JavaScript libraries. It is modular.
- Dojo Toolkit.
Uses packages with a mechanism to load them together along with the page. It can build reusable components and widgets, a lot of them is provided on the site. It allows to manipulate the DOM more easily, and to make graphical effects. - Qooxdoo.
Includes advanced cross-browser layout managers and an advanced build system for graphical user interfaces similar to that of desktop software. Widgets are provided with the function to use them from the keyboard or the mouse. Third parties provide PHP or Java code to process data with XMLHttpRequest. - Anaa.
A simple library for GET and POST with callbacks. Implements responseHTML, the A.E.P. extension.
Minimal framework, it allows asynchronous reading and writing, and can be combined with any JavaScript library. It is suitable for learning Ajax and to add casual features.
Java frameworks
Java is the programming language that is the more often used to build web
services.
A Java framework permit to use Java web services interactively with a web
page.
- Google Web Toolkit is a toolbox to develop Java applications, that are then compiled into JavaScript code, and this code processes the HTML page through DOM methods.
.NET frameworks
- Microsoft Ajax Library (formerly ATLAS) is made of a client side part: Microsoft AJAX Library, and a server side part: ASP.NET 2.0 Ajax Extensions. But a component library is also provided with graphical widgets: ASP.NET Ajax Control Toolkit.
Beyond Ajax
Some current developments will reinforce again the importance of Ajax by providing standard for RIA (Rich Internet Applications), mainly HTML 5 that extends HTML with Web applications features and that allows a Web application to run offline.
- See JavaScript frameworks for building web applications.
- WebSocket. A bi-directional access to the server.
Resources
- Ajax Tutorial. Learn Ajax and XMLHttpRequest.
- JSON. A data format that is part of the JavaScript standard.
- Ajax API library. Google centralizes the loading of a framework among a selection of the most popular and will keep them indefinitely available online.
This seems to slow loading to use an external site, but if the JavaScript code is cached, as it is normally the case, that could actually accelerate it.