Javascript Remoting Frameworks - Ajax Patterns

Javascript Remoting Frameworks

From Ajax Patterns

Revision as of 14:06, 17 March 2006; view current revision
←Older revision | Newer revision→

See also Javascript_Multipurpose_Frameworks and Ajax_Frameworks.

Contents

AjaxCaller (from May 2005)

AjaxCaller is a basic threadsafe wrapper around XMLHttpRequest mainly for Ajax newcomers, still beta and under development, only packaged with the AjaxPatterns demos right now. See TestAjaxCaller.

  • RESTful calls to the server (GET/POST/PUT/DELETE) with plain-text or XML routed to a callback operation.
  • Destruction of used XMLHttpRequest objects.
  • Response caching (planned).
  • Aimed at Ajax newcomers - instead of optimising on performance or footprint, the library will aim to be a readable code base and will provide debugging support.
  • Creative Commons license. By Michael Mahemoff with some ideas from John Wehr and Richard Schwartz.

AjaxGear (from November 2005)

AjaxGear Simple and cross-platform AJAX toolkit.

  • Enables a Web browser to make asynchronous call to the Web server without the need to refresh the whole page.
  • Use the Ajax class to communicate with the Web server.
  • A complete website is available for download to see AjaxGear in action.
  • Use the AjaxGear.PageEngine.js file to learn how a website can easily use the toolkit.
  • Example code:
function display(page, contentID)
{
    var obj = document.getElementById(contentID);
    var ajax = new AjaxGear.Ajax();
    ajax.setMethod("Get");
    ajax.setPagePath(page);
    ajax.startRequest();
    ajax.onRequestComplete = function(){   
        obj.innerHTML = ajax.getResponseText();
    }
}
  • Current version includes a Tab component.
  • Three components are currently being developed as part of the AjaxGear toolkit namely progress bar, auto complete and form validator.
  • Released under MIT open-source license by Allan Spartacus Mangune of ArchCommerce.

Ajax Client Engine (From December 2005)

[1] is a powerful remoting wrapper.

  • Object-oriented API.
  • Cross-browser support
  • Flexible:
    • Request option
    • Request parameter validation
    • Callback argument
    • Callback option
    • Callback timeout
    • Tracing service
    • Caching service
    • Polling service
    • Common callbacks
    • Exception handling
  • Open-Source (MIT License) by Li Shen.

AJFORM (Since June 2005)

AJFORM" AJFORM is an extremely easy to use AJAX framework. It is designed to be for entry level AJAX coders. It's single purpose is to send data from any HTML form via XMLHTTP.

The AJFORM Framework provides you with:

  • 3 Step setup
  • Automatic support for any HTML form
  • Ability to implement with little coding knowledge
  • Open-Source (BSD License)

LibXMLHttpRequest (Released; June 2003)

libXmlRequest is a thin wrapper around XMLHttpRequest.

  • Synchronous and asynchronous getXML() and postXML() methods.
  • Pooling of XMLHttpRequest objects.
  • Response caching.
  • XSL and XPath utilities.
  • setInnerXHTML utility for copying XML nodes into an HTML document.
  • Source protected by standard copyright. By Stephen W. Cote.

Javeline TelePort (evolved from vcXMLRPC, from Aug 2000)

TelePort is Javeline TelePort is an Open Source server communication layer supporting all popular web services such as XML-RPC, SOAP, JSON, REST and Comet. Javeline TelePort is an Open Source server communication layer supporting all popular web services. By using it, developers can elegantly implement asynchronous communication as part of their AJAX projects. It has robust error, time-out and retry handling. TelePort features an advanced polling interface for controlling reconnecting and the polling frequency, and has advanced debugging features. Currently Javeline TelePort has built-in support for XML-RPC, SOAP, JSON, REST, Comet and Javeline FrameWork-specific protocols. TelePort is released under the Open Source GPL license so support for other protocols can easily be added.

Supported Protocols

Features

  • Modulair protocol support
  • Robust polling engine
  • Elegant error handling
  • Elegant time-out handling
  • Automatic retry
  • Comet server component included
  • JPHP server component included
  • Realtime communication trace for easy debugging

Benefits

  • Interchangeability between protocols
  • Highly Scalable
  • Build for reliability
  • Stable communication foundation
  • Tested in real-world applications
  • Evolved from the 2000 vcXMLRPC library

For documentation and the source code visit the project page at SourceForge.net, or the developer center at Javeline.org.

Project page:

Live demos:

Documentation:

More information:


JSMX (from Aug 2005)

JSMX This is a very simple AJAX implementation for ColdFusion Developers (or any language that can easily build JavaScript Strings), This API does not return XML but String Representations of JavaScript Expressions.

  • Using WDDX and the toScript() function within ColdFusion makes converting your ColdFusion Objects to JavaScript a SNAP!
  • Smaller Packet Sizes over the wire (JavaScript Vs. XML).
  • Reduced latency due to less parsing of the responses.
  • Parameters can be sent to the server in multiple formats including, strings, objects, and entire forms without having to build extra logic to handle each type.
  • API has no Server Side components which makes it more portable (planned).
  • Extremely simple syntax shortens the learning curve and speeds up development.
params = document.myForm;
http( "POST" , "remote.cfc?method=dosomething" , my_callback , params );
  • Open-source (Creative Commons Attribution-ShareAlike License). By Todd Kingham.

MAJAX (Released; August 2005)

[2] is yet another VERY thin wrapper for HttpRequest, the idea is to have a really simple interface to send and receive ASCII content. Provides handy callback interface for doing actions e.g. upon server response.

HTMLHttpRequest (Beta; from 2005)

HtmlHttpRequest uses XMLHttpRequest and IFrames as well for improved compatibility.

  • Tested and Works: IE6/Win, IE5.5/Win, IE5/Win, IE4/Win, Mozilla/Win, Opera7/Win, Safari/Mac, IE5/Mac.
  • Untested, Probably Works: IE4/Mac, Mozilla/Mac, Opera/Other, Konqueror/Linux. Are you using one of these? The author is requesting compatibility info.
  • Open source license (LGPL). By Angus Turnbull of Twin Helix Designs.

RSLite (x)

RSLite is a thin wrapper around a highly cross-browser compatible transport layer comprised of a javascript image object request with querystring parameter and a cookie response.

  • A simple component released as part of Brent Ashley's more comprehensive Remote Scripting work (see Javascript Remote Scripting - JSRS in Multi-Language Server-Side section).
  • Open-source license by Brent Ashley.

Sack (In development; from May 2005)

Sack is a thin wrapper around XMLHttpRequest.

  • Caller can specifies callback function or callback DOM object. With a callback DOM, the response text is pushed directly into the DOM.
  • Open source (modified MIT license) by Gregory Wild-Smith.

Subsys_JsHttpRequest

Subsys_JsHttpRequest - Russian Ajax framework with XmlHttpRequest support and dinamic "script src" generation to emulate Ajax functional for old browsers, which not compatable with XmlHttpRequest.

vcXMLRPC (Released Aug 2000)

vcXMLRPC is a way of communicating over the internet. It is an agreement on sending structured data(e.g. Arrays, Structs, strings) encoded in XML to a Server. An XML-RPC Message is received back as a response which also contains structured data.

vcXMLRPC is arguably the first Open Source XML-RPC library. It was released in August 2000. It is no longer in active development, but has evolved into Javeline TelePort, part of Javeline FrameWork.

XHConn (Released; from April, 2005)

XHConn is a thin wrapper around XMLHttpRequest.

  • Example:
new XHConn().connect("mypage.php", "POST", "foo=bar&baz=qux", fnWhenDone);
  • Open-source (Creative Commons Attribution-ShareAlike License). By Brad Fults.