Wiki source for AjaxIntegration


Show raw source

===== 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 [[http://en.wikipedia.org/wiki/XMLHTTP | 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 [[http://script.aculo.us/demos/ajax/autocompleter_customized | 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 [[http://www.google.de/ig?hl=en# | Personalized Google]], [[http://mail.google.com | GoogleMail]] and [[http://maps.google.com | 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 ===
[[http://css.openformats.org/wikka.php?wakka=LiveSearch | 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?

== External links ==
~-[[http://en.wikipedia.org/wiki/AJAX | AJAX at Wikipedia]]
~-[[http://www.adaptivepath.com/publications/essays/archives/000385.php | Ajax: A New Approach to Web Applications]] by Jesse James Garrett. The original article which coined the term.
~-[[http://www.standards-schmandards.com/index.php?2005/03/01/16-ajax-and-accessibility | AJAX and accessibility]]
~-[[http://ajaxredux.com/feature/progressive_enhancement_tutorial.php | AJAX Progressive enhancement]]

----
CategoryDevelopment
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki