Client development
From Casastristes
On client side we are going to develop a standards-compliant HTML website using a Content Management System as base system and an AJAX/Javascript library for UI development and server communication. As first step we have to decide which CMS and which Javascript libraries to use, additionally we should start to investigate Map development.
Contents |
CMS
Instead of setting up our own system there could be advantages of using a CMS for our site. Rolling our own system could have fit our needs more exactly than a CMS does, on the other hand a CMS offers a lot of tasks like user management which we have to reprogram on our own. To decide what way to go we should have in mind the following requirements:
- flexibility
- user management
- compatibility with AJAX/Javascript libraries
- compatibility with map development
- compatibility with server development
see:
- maybe Drupal: Rolling your own system vs. using Drupal
- try out open source CMS before you install it
AJAX/Javascript libraries
comparison matrix
Nowadays AJAX stands for a lot of different things, the following points are connected to AJAX, Web2.0 and Rich Internet Applications:
- Asynchronous communication between browser and server: the libraries make the handling of the XMLHttpRequest easier.
- DHTML effects: known since many years some DHTML technics are now subsumed in this category.
- Widgets: also known since years. widgets like textfields showing suitable words getting shorter and shorter are quite popular.
- Javascript/DOM utilities: making Javascript coding easy offering a lot of functionality like DOM and CSS manipulation.
| script.aculo.us | rico | jQuery | mootools | dojo | MochiKit | |
| based on | prototype | prototype | ||||
| license | MIT | Apache | MIT | MIT | AFL | AFL |
| AJAX | yes | yes | yes | yes | yes | yes |
| widgets | yes | yes | yes |
plugins | yes | no |
| DHTML effects | yes | yes | yes | yes | yes | yes |
| javascript/DOM utilities | yes | yes | yes | yes | yes | yes |
| data formats | XML, JSON | XML, JSON | XML, JSON | XML, JSON, others | XML, JSON, others | XML, JSON |
| projects used for | del.icio.us, feedburner.com, rubyonrails.org | digg.com, code.google.com | joomla.org, ubuntu.com | store.apple.com | mochibot.com | |
| pros | famous for pros in interface development, good documentation on server side integration | fully object oriented | good API documentation | |||
| cons | poor documentation, no Safari support | API documentation is not complete |
We haven’t included prototype because libraries based on it have more functionality to offer. We ether included Google Web Toolkit as a lot of documents speak about its slow learning curve.
see other comparisons:
- List of Javascript Ajax frameworks
- Survey of AJAX/JavaScript Libraries
- An Open Source AJAX Comparison Matrix
decision finding
The main factors we have to keep in mind while making the choice are:
- License: There is a lot of offer of AJAX libraries written in Javascript, which all come as open source to the browser so one additional criteria for our selection is that they are free software.
- Compatibility: The generated code must be standards-compliant and common browsers as Firefox, IE, Safari, Opera and Konqueror.
- Documentation: It shouldn’t take a long time to learn the toolkit itself. One of the important requirements of the project is rapid prototyping since the UI forms the core component of the project.
- Stability & Support: It is important for the toolkit to be stable, and under active development; since the application may be used by hundreds of people.
- Features: Of course, the stuff that the toolkit offers should match with what we require. It should offer AJAX functionality, widgets, DHTML effects and javascript/DOM utilities.
Extensions, widgets
JQUERY
- Form validation based in Jquery
- LightBox pluging for JQuery
- Table sorting
- Flash Embed help in things like: detect flash(version or if is installed), install express, integration like youtube...
- Tab library
- RSS/ATOM feed parser plugin
- Border corners by jquery
- Cycle
- AutoComplite library
- PageFlip animated
- Display a fixed box in the web page
- Repository of JQuery plugins list
Tutorials JQUERY
PROTOTYPE
- Lightbox is a simple, unobtrusive script used to overlay images on the current page
- Bram.us LazierLoad: Javascript Image Lazy Loader for Prototype
- Easy form validation based in prototype: http://tetlaw.id.au/view/javascript/really-easy-field-validation
- Xml with prototype tutorial IBM: http://www.ibm.com/developerworks/library/x-ajaxxml7/?ca=dgr-lnxw01AjaxMedia
- Images caruosel component (prototype/script.aculo.us)
- Table sorting component (prototype)
OTHERS THINGS:
- Make Google Maps Easily (based in prototype): GPlotter (v0.90)
Other js libraries
- Google maps API: Google maps documentation
- swfobject: flash detection

