In this chapter
Web site: http://ajax.zervaas.com.au/
License: Apache
AjaxAC is a widget-based AJAX library in which minimal JavaScript is written. New widgets are written as PHP classes, and they use an event API for attaching AJAX actions to normal JavaScript events. Small amounts of glue JavaScript are included inside the PHP class, which can make for a complex development process. On the client, a mix of custom, handwritten JavaScript and framework-generated JavaScript is used to implement applications.
Web site: http://pear.php.net/package/HTML_AJAX/
License: LGPL
HTML_AJAX provides a stand-alone JavaScript-and-PHP API for AJAX requests. It’s part of the PHP PEAR library project. PHP integration includes exposing PHP classes though proxy JavaScript objects and helper functions for JavaScript generation. RPC communications takes place using JSON, although other formats are supported through a pluggable architecture. Easy AJAX form submission and the generation of JavaScript from AJAX requests are also supported. The library is covered in detail in Chapter 9, “Libraries Used in Part II, HTML_AJAX.”
Web site: http://pajaj.sourceforge.net/
License: LGPL
PAJAJ is an object-oriented, event-driven AJAX library for PHP5. You can develop applications by using the PAJAJ HTML-generation tools to build your HTML and to attach events on the server side; you can also use a JavaScript API to bind events to already-existing HTML pages. PHP classes are exposed to JavaScript by creating a PHP page for each class and having the class extend the BaseAjaxServer
class. This requirement of extending a base class can be troublesome for some frameworks that already contain base classes. JSON is used for all communication between JavaScript and PHP.
Web site: www.metz.se/tinyajax/
License: LGPL
TinyAjax is a PHP5 solution that provides a simple API that is similar to SAJAX. It works by exporting individual PHP functions to JavaScript and generating JavaScript from a set of PHP helper methods. These helper methods include functions for grabbing the values from an HTML form and setting the innerHTML of DOM elements. Basic TinyAJAX applications can be written without writing any JavaScript code.
Web site: www.xajaxproject.org/
License: LGPL
Xajax works by exporting PHP classes that return AJAX action objects from each call. These return actions can update the attributes of any DOM element and new custom JavaScript to the application. This functionality is similar to HTML_AJAX_Action (Chapter 9) and is designed to allow you to implement AJAX almost completely from the server side. Data serialization is handled using a custom XML format.
Web site: http://wiki.xoad.org/index.php?title=Wiki_Home
License: PHP
XOAD provides RPC-style AJAX by exporting PHP classes to JavaScript. It includes a number of helper classes for generating the needed JavaScript during this process. JSON is used for communications between the client and the server. XOAD also includes a number of additional features, including action-based returns (similar to HTML_AJAX_Action in Chapter 9) and a custom event model. The event model is designed to allow you to fire an event on one client and catch it on another. This makes it easy to write chat applications.
Web site: http://ajaxtags.sourceforge.net/
License: Apache 2.0
AjaxTags is a set of JSP tags designed to make it easy to add AJAX to Java JSP sites. Each tag implements a specific widget. These tags include support for an auto-complete text box, pop-up balloons, multistep select boxes, tabbed panels, and area displays. Tags are also offered for making HTML content replacement. Prototype, scriptaculous, and OverLIB are used on the client side. XML is used for communication between the client and the server.
Web site: http://getahead.ltd.uk/dwr/overview/dwr
License: Apache
DWR offers an easy way to export Java classes and make them accessible from JavaScript applications. DWR does this by generating JavaScript proxy classes that match the Java ones. This operation works much like HTML_AJAX’s RPC mechanism (described in Chapter 9). The Java classes can be configured using XML or annotations. A number of utility JavaScript functions are also included to make standard DOM-manipulation tasks easier.
Web site: http://code.google.com/webtoolkit/
License: Mix of Apache 2.0 and free-to-use components
Google Web Toolkit allows Java developers to make AJAX applications without writing JavaScript. The heart of the toolkit is a special compiler that translates the Java application into JavaScript and HTML. The toolkit includes a user-interface library with a large number of widgets, including standard HTML form elements, menu bars, trees, tables, dialog boxes, and various panels for managing the layout of the application. A custom event model based on a listener pattern is provided, as is an API for managing style sheets. RPC support is provided using code generation to hide the hard work, and data serialization is provided for most basic Java types. The toolkit also includes back-button management and debugging tools.
Web site: http://zk1.sourceforge.net/
License: GPL and commercial
ZK is a component- and widget-based AJAX library. It allows you to build AJAX applications without writing JavaScript. Its widgets are geared toward building complete applications; thus, it would be hard from a style-and-usability perspective to integrate it into existing Web sites. (This isn’t unique to ZK; many widget-based toolkits have a similar problem.) ZK has a large set of widgets, from standard HTML form elements to trees and modal dialog boxes. ZK applications are developed using a custom ZUML markup language (which is similar to Mozilla’s XUL) with embedded Java.
Web site: www.ajaxpro.info/default.aspx
License: Public domain
Ajax.NET provides AJAX support for ASP.NET 2.0 applications. It includes control for AJAX versions of standard HTML elements and allows you to create your own custom controls. It includes the ability to expose .NET classes to JavaScript, handling type mapping automatically. This mapping is implemented using JSON.
Web site: http://anthem-dot-net.sourceforge.net/
License: Public domain
Anthem.NET provides AJAX support to ASP.NET 1.1 and 2.0. Like most .NET libraries, it provides indirect AJAX, where portions of your templates are rewritten by the library to make AJAX calls. It works by mapping the standard ASP.NET control model into an AJAX environment. This includes full support for view state and server-side events.
Web site: http://atlas.asp.net/
License: Free to use
Atlas is Microsoft’s AJAX toolkit that provides tight integration with ASP.NET 2.0 and Visual Studio. The toolkit is designed so that .NET developers can add AJAX to their applications by using widgets and indirect AJAX and without editing code. In indirect AJAX, the Atlas code takes current ASP.NET templates and rewrites their links and form actions, making them post to the server using AJAX calls. The toolkit also includes visual effects, drag-and-drop support, automatic user profiles, data-binding widgets, and support for Windows Live widgets.
Web site: http://www.magicajax.net/
License: LGPL
MagicAJAX.NET focuses on providing AJAX support without your needing to write JavaScript code. You can do this by adding an AJAX control to your pages and then rewriting current controls. MagicAJAX.NET also has some support for writing JavaScript from .NET (including helper methods). Communication with the server is done with URL-encoded POST
s to the server. In such situations, the server returns JavaScript code.
Web site: http://cpaint.booleansystems.com/
License: GPL and LGPL
Languages: PHP, ASP, and PERL
CPAINT is an AJAX library that is focused on communications and supports XML and text-return types. The JavaScript API supports RPC calls and can be used in asynchronous or synchronous mode. Results are encapsulated in a CPAINT result object and can be generated on the server using a similar API. As an alternative, the results on the server can be generated automatically using a proxy API.
Web site: http://rialto.application-servers.com/wiki/
License: Apache
Languages: JSP, JSF, .NET, Python, and PHP
Rialto is a JavaScript widget library with support for a number of different server languages through pluggable back ends. The widgets include drag-and-drop, treeview, popup, calendar, and forms. The pages are created using an object-oriented API in JavaScript, and page development can be done using pure JavaScript or a server API. Server-specific code includes an object-oriented API for creating widgets as well as an API for dealing with AJAX requests. Java JSP support is the most mature, but others are in early development.
Web site: www.modernmethod.com/sajax/
License: BSD
Languages: PHP, ASP, ColdFusion, Perl, Python, Ruby, LUA, and IO
Sajax is a simple RPC-style AJAX library. Its original focus was PHP, but support for other languages has been added over time. Some of the additional language support is under a different license than the main code. Sajax provides a procedural API and works by registering server methods and having JavaScript stubs generated for them. When you call the stub method, Sajax makes an AJAX request and then calls a callback method with the results.
3.145.109.8