Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ajax In Action (2006).pdf
Скачиваний:
63
Добавлен:
17.08.2013
Размер:
8.36 Mб
Скачать

Ajax frameworks and libraries

627

 

 

Interactive Website Framework

Open source

http://sourceforge.net/projects/iwf/

Interactive Website Framework is a project whose aim is to support the various aspects of Ajax infrastructure in the browser. Describes itself as a framework for creating highly interactive websites using JavaScript, CSS, XML, and HTML. Includes a custom XML parser for highly readable JavaScript. Contains essentially all the plumbing for making Ajax-based websites, as well as other common scripts. Provides a thread-safe XMLHttpRequest implementation and a wrapper around the DOM, making for more readable code.

Jackbe

Commercial

www.jackbe.com/solutions/development.html

Ajax rich client widget suite; can be plugged into any middleware technology such as ASP, Java, .NET, or PHP.

JPSpan

Open source (PHP)

http://jpspan.sourceforge.net/wiki/doku.php

JPSpan passes JavaScript calls directly to PHP functions. Heavily unit-tested.

jsolait

Open source (LGPL) http://jsolait.net

Set of open source JavaScript libraries, including cryptography, serialization and deserialization, XML-RPC, and JSON-RPC.

JSON

Open source; most implementations are LGPL

www.json-rpc.org/

JSON is a “fat-free XML alternative” and JSON-RPC is a remote procedure protocol, akin to XML-RPC, with strong support for JavaScript clients. Implementations exist for several server-side languages and platforms, including Java, Python, Ruby, and Perl.

628APPENDIX C

Ajax frameworks and libraries

JSRS (JavaScript Remote Scripting)

Brent Ashley (2000)

Open source

www.ashleyit.com/rs/jsrs/test.htm

JSRS routes calls directly from JavaScript into your server-side language and back out again. Known browsers: IE 4+, Netscape 4.x, Netscape 6.x, Mozilla, Opera 7, and Galeon. Server-side support: ASP, ColdFusion, PerlCGI, PHP, Python, and JSP (servlet).

LibXMLHttpRequest

Stephen W. Coate (2003)

Source available, protected by copyright www.whitefrost.com/servlet/connector?file=reference/2003/06/17/libXmlRequest.html

LibXMLHttpRequest is a thin wrapper around XMLHttpRequest.

Mochikit

Open source (MIT)

www.mochikit.com/

Mochikit is a set of libraries whose highlights include logging, visual effects, asynchronous task management, string and date/time formatting, and a “painless” DOM manipulation API that makes heavy use of JavaScript’s built-in Array objects and JSON-like notation to represent the DOM.

netWindows

Open source www.netwindows.org

Complete DHTML desktop/windowing environment inside the browser. Code is purely standards-based, with no browser hacks. Contains a “signals and slots” messaging implementation, modeled after Trolltech’s Qt widgets and the Smalltalk language; also available as a standalone library.

Oddpost

Commercial

www.oddpost.com

JavaScript widget suite; includes fully functional rich e-mail client. Now part of Yahoo!.

Ajax frameworks and libraries

629

 

 

OpenRico

Bill Scott, Darren James (2005)

Open source

http://openrico.org

A multipurpose framework with support for Ajax. Covers user interface issues such as animations, separation of content from logic through behaviors, drag and drop, and some prebuilt widgets, notably a data grid. Sponsored by Sabre Airline Solutions; has seen real-world use. Built on top of Prototype.

Pragmatic Objects

Open source

http://pragmaticobjects.com/products.html

Pragmatic Objects’ WebControls is a set of JSP tag libraries designed as reusable controls or components to enrich Java-based web applications. As opposed to rich but fat web applications, a thin client web application, at the end of the day, consists of nothing but a series of HTML pages, containing JavaScript and CSS codes that are rendered by the browsers. Current offerings consist of an “outlook bar,” a tree widget, and a control panel.

Prototype

Sam Stephenson (2004)

Open source

http://prototype.conio.net/

Prototype is a JavaScript framework designed for RIA development. It includes a solid Ajax library and a toolkit to simplify use. Prototype is the JavaScript engine for Ruby on Rails, Rico, and Scriptaculous, among others. Prototype’s JavaScript code is generated from Ruby, but the generated JavaScript may be deployed in non-Ruby environments.

Qooxdoo

Open source (LGPL)

http://qooxdoo.sourceforge.net

This is an Ajax user interface library with a large range of prebuilt components and a well-thought-out design. Includes widgets, layout managers, and portable PNG transparency. Also provides development support such as timers for profiling and debugger support.

630APPENDIX C

Ajax frameworks and libraries

RSLite

Brent Ashley (pre-2000)

www.ashleyit.com/rs/main.htm

A simple component released as part of Brent Ashley’s more comprehensive Remote Scripting work (see the JSRS entry earlier in this appendix).

Ruby on Rails

David Heinemeier Hansson (2004)

Open source (MIT)

www.rubyonrails.org

Ruby on Rails is a general web framework with strong Ajax support. Rails was still in its early days when the Ajax hype began, so Ajax may become increasingly core to the Rails framework. Generates most if not all of the JavaScript for widgets and animation in the browser. Support for calling server-side. Scheduling support. Current darling of the fashionable web development crowd, Ruby on Rails eschews the complex overdesigned, cover-all-bases strategy in favor of a straightforward, getting-the-job-done approach, with the help of a good deal of code generation. Has won over many Java developers for that reason. Our interest in Ruby on Rails for the purposes of this book is primarily its very good support for Ajax. Prototype, and most recently Scriptaculous, have been integrated into Rails.

Sack

Open source (modified MIT/X11)

http://twilightuniverse.com/2005/05/sack-of-ajax

Sack is a thin wrapper around XMLHttpRequest. The caller can specify a callback function or a callback DOM object. With a callback DOM, the response text is pushed directly into the DOM.

SAJAX

Open source

www.modernmethod.com/sajax

SAJAX routes calls directly from JavaScript into your server-side language and back out again. So, for example, calling a JavaScript method x_calculateBudget() will go the server and call a Java calculateBudget() method, then return the value in JavaScript to x_calculateBudget_cb(). Facilitates mapping from a JavaScript stub function to a back-end operation. Capable of stubbing calls to numerous server-side platforms: ASP, ColdFusion, Io, Lua, Perl, PHP, Python, and Ruby.