Appendix A. JavaScript AJAX Libraries

In this chapter

AJAX Toolbox

Bajax

Dojo Toolkit

libXmlRequest

MochiKit

Rico

Simple AJAX Code-Kit (SACK)

ThyAPI

Qooxdoo

XHConn

Yahoo! User Interface Library

AJAX Toolbox

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.

Bajax

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.

Dojo Toolkit

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.

libXmlRequest

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.

MochiKit

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.

Rico

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.

Simple AJAX Code-Kit (SACK)

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.

ThyAPI

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.)

Qooxdoo

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.

XHConn

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?”

Yahoo! User Interface Library

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.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.117.186.92