Showing posts with label Ajax. Show all posts
Showing posts with label Ajax. Show all posts

Wednesday, September 5, 2007

Article on AJAX Architecture

A good link for understanding AJAX Architecture

Tips and Tricks for UpdatePannel in AJAX

Tips and Tricks for UpdatePannel in AJAX

Monday, August 13, 2007

AJAX Life cycle

The Ajax lifecycle is more like that of a traditional GUI than a traditional web application, with DOM objects acting like GUI widgets. The script registers event listeners on DOM objects, and manipulates the DOM in response to those events. As part of the event-processing cycle, the server may be invoked. There's actually a slight complication here in that the server calls are asynchronous, so the event-listening phase is split from the event-responding phase.

Here's a typical Ajax lifecycle within the browser:

  • Visit: The user visits a site the usual way, i.e. by clicking on a link or typing a URL.
  • Initialisation The page initially loads. Callbacks are established to handle user input, a loop might be established to continously refresh page elements.
  • Event Loop:
    • Browser Event An event occurs, such as a keypress.
    • Server Request The browser sends a request to the server.
    • ...<Server processes the event>
    • Server Response A moment later, the server responds, and the response is passed into a request callback function, one that was specified when the request was issued.
    • Browser Update The request callback function updates the DOM, including any Javascript variables, according to the response.

Of course, there are plenty of variants. In particular, many events are handled locally and don't actually trigger a trip to the server. Also, some Ajax applications are short-lived and the browser interaction is eventually terminated with the user submitting a form. Others remain to interact with the user as long as they are in the user's browser.

Note that the Browser Event and the Server Request occur in one thread, and the Server Response and Browser Update occur in a separate thread. This is due to the asynchronous nature of the server request. It's actually possible to configure XMLHttpRequest to make synchronous calls, but poor practice as it holds up the user.

AJAX Framework list

Name License Type Cost Technologies
AccessKey Permissive License  Free Pure JavaScript
Active Widgets Commercial  $395 / $2450 Pure JavaScript
Aflax Mozilla 1.1  Free Flash
Ajax AC Apache 2 Free PHP
Ajax CFC Apache 2 Free ColdFusion
AJAX Engine  BSD Free ASP.NET
Ajax Tags Apache 2 Free Java / JSP
AJAX.net MSPL Free ASP.NET
AjaxAnywhere  Apache 2 Free Java / JSP / JSF
AjaxGear Toolkit  Permissive License  Free Pure JavaScript
AjaxRequest Permissive License  Free Pure JavaScript
AJForm BSD Free Pure JavaScript
AJS MIT Free Pure JavaScript
ANAA Mozilla 1.1 Free Pure JavaScript
Anthem.NET Public Domain Free ASP.NET
APHPLix Permissive License  Free PHP
Aspects Creative Commons 2 Free ASP.NET
aSSL MIT Free SSL / ASP
Authentico Commercial  $3995 and UP  Pure JavaScript  ??
Backbase Commercial Undisclosed Java
Bajax BSD Free Pure JavaScript
Behaviour  BSD Free Pure JavaScript
Bindows Commercial  $195 Pure JavaScript
CakePHP MIT Free PHP
Crossvision Commercial ??? Java
Dojo Academic Free License v 2.1 Free Pure JavaScript
DOMApi Commercial $49 to $1995 Pure JavaScript
DPSyntax Highlighter GPL Free Pure JavaScript
DWR Apache 2.0  Free Java
Echo2 Mozilla Free Java
Engine  Permissive License  Free Pure JavaScript
Flash Object  MIT Free Flash
Flexible Ajax BSD Free PHP
Fresh Logic Creative Commons 2 Free ASP.NET
Gaia Widgets GPL Free ASP.NET
Google - GWT Apache Free Java
HTML_AJAX  LGPL Free PHP
IWF (Interactive Website Framework)  GPL Free Pure JavaScript
JackBe Commercial ??? ???
Java Blueprints Sun Proprietary Free Java
Jquery  MIT Free Pure JavaScript
Jsan Perl License Free Pure JavaScript
JSON-RPG-Java LGPL Free Java
JSPan PHP License Free PHP
JSPkg Creative Commons 2 Free Pure JavaScript
JTQJSPaging None Free Pure JavaScript
JWic Apache Free Java
Laszlo CPL Free Java / J2EE / Flash
LibXMLRequest Permissive License  Free Pure JavaScript
Microsoft Ajax  MSPL Free ASP.NET ****
Mochikit  MIT Academic Free License, v2.1 Free Pure JavaScript
Moo Ajax Permissive License  Free Pure JavaScript
Moo.fx  MIT Free Pure JavaScript
Nexaweb Commercial ??? Java / J2EE
Nifty Corners Permissive License  Free Pure JavaScript
Nitobi Commercial $489 - $3695 Java / J2EE
Overlib Permissive License  Free Pure JavaScript
PAJAJ GPL Free PHP
Pajax GPL Free PHP
PEAR::Html-Ajax LGPL Free PHP
PHP-JSON ??? Free PHP
PlexTk GPL or LGPL Free Pure JavaScript
Prototype MIT Free Pure JavaScript
qForms GPL Free Pure JavaScript
Qooxdoo LGPL Free Java
Rialto  Apache 2.0  Free Pure JavaScript
Rich Web Client Commercial  $49 to $499 ASP.NET
Rico / Open Rico  Apache 2 Free Pure JavaScript
RSLite Permissive License  Free Pure JavaScript
SACK Modified X11 Free Pure JavaScript
Sajax BSD Free Multi Platform
Sardalya Permissive License  Free Pure JavaScript
Sarissa GPL Free Pure JavaScript
Sarmal  GLP  Free Pure JavaScript
Scriptaculus MIT Free Pure JavaScript
ScriptCoreLib Permissive License  Free ASP.NET / C#
SmartClient Commercial  11 Java Centric / Not Dependent
Solvent Permissive License  Free Pure JavaScript
Spry (Adobe) BSD Free Pure JavaScript
Symfony MIT Free PHP - NOT Ajax Specific
Taconite Permissive License   Free Pure JavaScript
Tacos Apache Free  Java (for Tapestry)
ThinWire LGPL Free Java
ThyApp GPL Free Pure JavaScript
Tibco General Interface BSD  Free Pure JavaScript
Toxic Permissive License  Free PHP
TurboGears MIT Free Python - Not Ajax Specific
Visual Web GUI LGPL Free ASP.NET
WebORB Depends on Platform Free to $1999 Multi Platform Versions
WebWork Modified Apache Free Java
WZ_DragDrop Permissive License  Free Pure JavaScript
WZ_jsGraphics Permissive License Free Pure JavaScript
X LGPL Free Pure JavaScript
Xajax LGPL Free PHP
XHConn Permissive License Free Pure JavaScript
XHRConnection Permissive License Free PHP (No English) 
XOAD ?? ?? ??
Xwire Apache Free Java
Yahoo - YUI BSD  Free Pure JavaScript
Zephyr GPL Free PHP
Zimbra ZPL & Commercial Free & $$$ Depends on Platform
ZK GPL Free Java
Zoop ZPL & Commercial Free PHP