In this chapter
▪ Yahoo! User Interface Library
Web site: http://ajaxtoolbox.com/request/
License: Free to use
AJAX Toolbox is a comprehensive XMLHttpRequest
wrapper. It features progress monitoring, request grouping, and AJAX form submission. The project is well documented and includes source code and examples. The main drawback is the nonstandard license.
Web site: https://developer.berlios.de/projects/bajax/
License: BSD
Bajax is a small AJAX library with support for asynchronous requests. Automatic URL encoding of parameters is supported, but building the argument list from a form is not. The API is set up to be used as a simple entry point to a URL-encoded RPC system and to easily include new HTML content.
Web site: www.dojotoolkit.org/
License: New BSD or Academic Free License 2.1
Dojo is a complete framework for building JavaScript applications. It includes support for managing events and AJAX communications and for building widgets using templates. Dojo ships with a wide variety of widgets—from application style menus to Google Map’s integration. Dojo is focused on building rich applications and provides a rich set of features for doing so. It’s not the sort of library you want to drop in just for AJAX support, but if you want to build applications with JavaScript as a primary development language, it’s a good choice. AJAX includes RPC-style calls through JSON support. It also supports AJAX form submission and a document-oriented JavaScript API.
Web site: www.whitefrost.com/reference/2005/09/09/libXmlRequest.html
License: Similar to BSD, but with an advertising clause
libXmlRequest is an AJAX communications library with an XML focus. It supports asynchronous and synchronous operation, including support for cached GET
requests. The XML support includes an XPath and an XSL wrapper that works in Firefox and IE. Other browsers are supported for basic communication, but the XML features won’t work.
Web site: http://mochikit.com/
License: MIT or Academic Free License, v. 2.1
MochiKit is a complete JavaScript library that is designed to be a base for building rich Web applications. Features include visual effects, drag-and-drop support, JSON serialization and safe evaluation, string and date formatting, event management, and a number of other development tools. AJAX communication support is focused on JSON and supports only asynchronous operation. The library is well documented at the API level, but there is little high-level documentation explaining how it all fits together. Although MochiKit is a large library, it takes strides to be well name-spaced so that it can be used with other libraries.
Web site: http://openrico.org/
License: Apache 2.0
Rico is an AJAX and general DHTML library that provides many effects and tools that are useful in AJAX applications. Rico includes cinematic effects, drag-and-drop support, and widgets called behaviors. Like scriptaculous (described in Chapter 8, “Libraries Used in Part II: Sarissa, Scriptaculous”), Rico builds on the prototype library and is comparable in scope to scriptaculous. Rico is known for its high-quality widgets, such as its accordion and datagrid widgets. Basic AJAX communication support is provided by a singleton communication manager.
Web site: http://twilightuniverse.com/projects/sack/
License: MIT
SACK is a simple JavaScript library that provides AJAX communication support. Its focus is on ease of use and simplicity. Requests are made by creating a single object, which contains support for URL encoding data. There is no direct support for RPC or JSON, but the library is simple enough that it would be easy to extend. Support for managing errors is minimal, but loading notification is provided by adding event-handling functions.
Web site: http://sourceforge.net/projects/thyapi/
License: LGPL
ThyAPI is a framework for creating rich applications. It needs a server component but will work with any server-side language that supports XML-RPC. (Currently only a PHP back end exists.) The API is similar to client GUI frameworks, such as Java’s Swing, and includes a number of widgets, including a rich text editor, a calendar, dialog boxes, and windows. ThyAPI also supports drag-and-drop support, animations, and sound playback. (Sound playback uses the Flash plug-in.)
Web site: http://qooxdoo.org/
License: LGPL
Qooxdoo is a rich-application framework with a focus on AJAX-powered widgets. It has a large set of core features, including browser detection, event management, drag-and-drop support, a cookie API, and AJAX communications. The focus of the project is on API layout and widgets; the API layout provides an experience similar to using standard graphical APIs, such as Swing in Java. Widgets include menus, toolbars, combo boxes, and windows. Qooxdoo is extremely large, so it won’t be a good choice for mixing and matching with other solutions.
Web site: http://xkr.us/code/javascript/XHConn/
License: Creative Commons Attribution-ShareAlike
XHConn is an extremely lightweight wrapper that provides cross-browser XMLHttpRequest support. It’s a good choice if you don’t want to bother with cross-browser support but want to take care of the rest of the details yourself. The implementation is simple enough that you could easily make your version using the examples in Chapter 1, “What Is AJAX?”
Web site: http://developer.yahoo.com/yui/
License: BSD
The Yahoo! User Interface Library is a large JavaScript API that provides support for all aspects of rich-application development. It includes event management, drag-and-drop support, visual effects, animation, and AJAX communications. It also includes a number of widgets (which are called controls); these include an AutoComplete search widget and a calendar widget. The AJAX API is document-based on a single asyncRequest method. AJAX form submission is supported, and an object-oriented API for managing connections and errors is provided. The library includes excellent documentation; it also includes a design patterns library that shows how to combine the various widgets and effects.
18.117.186.92