AJAX and Wikka Wiki: some exploratory thoughts

AJAX (or Asynchronous JavaScript and XML) applications have become a largely discussed topic these days. Basically, AJAX provides enhanced interactivity by using a combination of JavaScript and XMLHTTP.

AJAX and wikis

There are many possible ways of integrating AJAX technology into a wiki, the most basic of which is probably autocompletion: in any case in which a username, a pagename or a category name is required, AJAX scripting can be used to "suggest" a list of keywords retrieved from the database. See, for example, this form autocompletion demo.

Apart from that the important thing on AJAX is the first A for asynchronous: It means that (without using server side includes!) you can load nearly any kind of data in the background without disturbing the user. Furthermore you can reload parts of your site without reloading everything. The basic behaviour of PHP (and most other SSIs) is that you change some state and reload the page to see the results. Using AJAX brings more of the usual application-like behaviour to the browser by keeping elements that you don't interact with and loading only the data that is actually needed when it is needed. You probably know that from the Google Apps like the Personalized Google, GoogleMail and GoogleMaps. The user doesn't need to wait for the loading to finish. [added by YodaHome]

AJAX and accessibility

One of the major issues in implementing AJAX applications in a content management system is the fact that very often they result in inaccessible interfaces. To respect accessibility requirements, AJAX applications should always provide a fallback for browsers not supporting JavaScript (like textual browsers) and alternative for those who cannot work with an Ajax interface, for instance people using a screen reader. In this sense, they should aim at providing facilitating tools, not replace basic functionality.

A simple test

Wikka with LiveSearch

Ajax Requirements

In most case, Ajax works well on Mozilla, Fx, Opera, no matter which version you use. For IE, most Code Kit implementation require at least version 5.5, although IE5.0 supports Ajax. We should also note how many users still use IE5.0 to decide if it's worth supporting it (see http://www.w3schools.com/browsers/browsers_stats.asp for example).

Ajax Code Kit Comparison

Xajax (http://xajax.sourceforge.net/)

xajax is an open source PHP class library that allows you to easily
create powerful, web-based, Ajax applications using HTML, CSS,
JavaScript, and PHP. Applications developed with xajax can
asynchronously call server-side PHP functions and update content
without reloading the page.

Prototype (http://prototype.conio.net/)

Prototype is a JavaScript framework that aims to ease development of
dynamic web applications.

Featuring a unique, easy-to-use toolkit for class-driven development
and the nicest Ajax library around, Prototype is quickly becoming
the codebase of choice for Web 2.0 developers everywhere.

script.aculo.us (http://script.aculo.us/)

script.aculo.us provides you with easy-to-use, compatible and,
ultimately, totally cool JavaScript libraries to make your web sites
and web applications fly, Web 2.0 style.

Building upon the wonderful Prototype JavaScript library,
script.aculo.us provides you with some great additional ingredients
to mix in.

RICO (http://openrico.org/)

The goal of Rico is to provide a rich experience for web sites using
Ajax technology.

The library is a fully object-oriented JavaScript and extends on the
excellent prototype.js effort from the Ruby on Rails folks.

SACK - Simple Ajax Code Kit (http://www.twilightuniverse.com/resources/code/sack/)

Prototype seems to be used by many people, but, like the others in the
list, seems rather heavy compared to Sack. So we have to ask ourselves:

what do we need from an ajax library? And which library can provide it best?

There are 6 comments on this page. [Show comments]
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki