Javascript libraries and AJAX

I spent a fair amount of time searching for good javascript and ajax libraries. Here are the ones I’ve tried and like.

DOMAPI is a great JS library. Its cheap, easy to use, and very modular. Its also been around for a long time and has pretty good support. If you buy it, you get access to the upcoming versions which have improved AJAX support. The 3.0 version uses a javascript RPC library which is an earlier version of AJAX concepts. Most everything in the library works great on FireFox + IE.

prototype.js is a free toolkit for writing ajax applications. Works great on IE/Firefox. Also claims to support Safari.

Rico is an open-source javascript library that builds upon prototype.js. They’ve done some great work with visual effects here. I especially like their Accordion widget, drag/drop features, and expanded AJAX support (check out their demos!). My biggest gripe about Rico is that it distributes itself as a single js source file which is about 80KB. In practice, this is probably not unbearable, and if it helps speed development, the size issue can be conquered later. I don’t think it works with Safari yet either.

An interesting library which I haven’t experimented enough with is Behaviour. This one looks promising as a great way to specify javascript actions/behaviors in the CSS rather than in the HTML. Used effectively, this could greatly improve the maintainability and readability of your HTML/Javascript.

Lastly, I’ll mention Zimbra’s Ajax Library, which is probably worth a look if you are just getting started simply because their demos are so impressive. Because Zimbra is an applications company, the library is buried within their source code, and they don’t spend a ton of time making it easy for developers. So it will a take a little more time to get started with this one, which is the reason I have yet to try it myself.

If you are searching for ajax info, you might want to check out the Ajax Frameworks page at ajaxpatterns.org.

Leave a Reply

Your email address will not be published. Required fields are marked *