XMLHttpRequest & Ajax Based Applications

Exposed to the masses with Google's Gmail, XMLHttpRequest can get the client side chatting with the server side. The result can be a faster performing web service/ application. The whole gamut of technologies that make up an XMLHttpRequest enabled web service was dubbed AJAX by the folks at Adaptive Path, short for asynchronous javaScript + XML. Oldskoolers like to call it remote scripting...

The AJAX Web Architecture (#)

This blog post and podcast offers up a great overview of Ajax - especially for the uninitiated (where have you been?).

The added value here is that this point of view comes months after the "Ajax Tipping point", and so it has some fresher content than the original articles that reviewed this topic.

AJAX: How to Handle Bookmarks and Back Buttons (#)

The Really Simple History library is a simple module that can be included into existing AJAX systems. Using both a hidden form field and a hidden iframe, this library allows you to set up a history in the browser, and therefore forward and backwards navigation through an Ajax enabled application.

Rocky Shoals of Ajax Development (#)

How can you not like this writing:

The siren's call of the XMLHTTPRequest object can lead many brave scripters to a demise on the rocky shoals of browser limitations and bugs.

Alex Bosworth offers a list of limitations and bugs that are worth knowing if you are developing with Ajax and want to avoid pulling your hair out at some point over what appears to be a weird error.

The list looks like it will be maintained in the Ajax area of this Swik wiki.

XMLHttpRequest - XUL Planet (#)

An overview of XMLHttpRequest properties and methods that include some user contributed notes.

jpspan - XMLHttpRequest Resources (#)

A web page with a short introduction to XMLHttpRequest and then a quite extensive list of links to references, tutorials, examples and tools.

ajax: a new approach to web applications (#)

Ajax is Adaptive Path's name for "Asynchronous JavaScript + XML". This goes beyond simply talking about xmlHTTPRequest and gets into the whole system, from DOM to xml and xhtml + CSS to the javascript to bind it all together.

XMLHttpRequest, Ajax, and the customer experience (#)

Jason Fried of 37signals endorses the Ajax term for the "Asynchronous JavaScript + XML" technology, and gives some sage advice about user experience and expectations with this new technology.

One advantage of Ajax-based apps is that things can happen quickly without a reload. On the surface this is fantastic � and deep down it usually is. But it can also be confusing and introduce brand new experience problems. Things that happen too quickly can leave people wondering “What just happened?�

XMLHttpRequest Usability Guidelines (#)

Some excellent points made by Thomas Baekdal about XMLHttpRequest, usability, the difference between a web application and a website, and some important ideas about using XMLHttpRequest.

Remote Scripting - Ashley IT (#)

Brent Ashley's remote scripting resources have been in existence since 2000, so if you are looking for a reliable place to dive into Ajax/ Remote Scripting/ xmlHttpRequest, his site is it.

His functions are well developed (jsrs2.4 with Ruby support!) and there is even a support forum. My guess is this is the place to start if you are getting into Ajax based applications.

AJAX and accessibility - Standards-schmandards (#)

A look at accessibility and usability of Ajax based applications, and some tips for increasing the accessibility of Ajax based forms.

AJAX and accessibility (#)

An short but excellent look at accessibility and Ajax, with a case study where the author enhances the accessiblity of a simple AJAX based calculator.

Cleaner XMLHttpRequest (#)

Provided in the last pages of a book on using xmlHttpRequest and Rails, this bit of code for cross-browser XMLHttpRequest instantiation was posted by Gyoung-Yoon Noh to the rails mailing list.

From the site: This is a much cleaner function for getting an XMLHttpRequest object in a cross-browser way.

To sync, or not to sync… (#)

Jamis Buck has a look at asynchronous XMLHttpRequests, some of the issues involved, and offers some "UI Guidelines for Asynchronous Requests", concluding that the asynchronous approach is certainly more complex, but it allows you much more freedom to build a more expressive and robust interface.

Ajax, promise or hype? (#)

Full of links, history, opinion and theory, PPK's article is worth a read if you want to get your head around more then just how to implement 'Ajax' technologies.

CLiki : cl-ajax (#)

Quoting a quote: cl-ajax... lets you use Lisp to leverage the XMLHttpRequest/Ajax technique that's used to such good effect in Flickr, Google Suggest and Google Maps to create real-time interactivity without page loads.

DataRequestor - Ajax without the confusing API (#)

Looks interesting. Not fully documented at the time of posting, however the js file itself contains a lot of useful info.

From the site: A JavaScript wrapper for the XMLHttpRequest object that enables the trivial implementation of dynamic interfaces without the painful necessity for a complete page-refresh to talk to the server. In other words: Ajax without the confusing API.

PowerWEB LiveControls for ASP.NET (#)

PowerWEB LiveControls for ASP.NET is a suite of 21 Web Controls that allow you to execute server-side callbacks and update form elements without reloading the HTML page.

Interesting to see on the page the following: ...Asynchronous Callbacks and REmote Scripting (ACRES). ACRES defines a new way to combine light-weight client callbacks with remote scripting to more easily construct Rich Internet Applications. It seems like this was announced on the 22nd of December, 2004.

Obviously ACRES didn't catch on quite like Ajax. I suppose that this is because either:

  1. The timing wasn't right
  2. They weren't vocal enough
  3. The limited nature of being ASP.NET only

Blog/summary posts from the Ajax Summit (#)

Notes from the Ajaxian Blog at the Adaptive path sponsored Ajax Summit. For those of us who couldn't make it, this is a great set of articles.

"XMLHttpRequest Tracing" for AJAX debugging (#)

A Greasemonkey user script to trace XMLHttpRequest calls in Firfoxes javascript console. From the page: Its purpose is to help peek into AJAX applications, to learning or troubleshooting, without having to run a network sniffer.

Check out the Resource categories for older content

The latest from my personal website,
Mike Papageorge.com

SiteUptime Web Site Monitoring Service

Sitepoint's web devlopment books have helped me out on many occasions both for finding a quick solution to a problem but also to level out my knowlegde in weaker areas (JavaScript, I'm looking at you!). I am recommending the following titles from my bookshelf:

The Principles Of Successful Freelancing

I started freelancing by diving in head first and getting on with it. Many years and a lot of experience later I was still able to take away some gems from this book, and there are plenty I wish I had thought of beforehand. If you are new to freelancing and have a lot of questions (or maybe don't know what questions to ask!) do yourself a favor and at least check out the sample chapters.

The Art & Science Of JavaScript

The author line-up for this book says it all. 7 excellent developers show you how to get your JavaScript coding up to speed with 7 chapters of great theory, code and examples. Metaprogramming with JavaScript (chapter 5 from Dan Webb) really helped me iron out some things I was missing about JavaScript. That said each chapter really helped me to develop my JavaScript skills beyond simple Ajax calls and html insertion with libs like JQuery.

The PHP Anthology: 101 Essential Tips, Tricks & Hacks

Like the other books listed here, this provides a great reference for the PHP developer looking to have the right answers from the right people at their fingertips. I tend to pull this off the shelf when I need to delve into new territory and usually find a workable solution to keep development moving. This only needs to happen once and you recoup the price of the book in time saved from having to develop the solution or find the right pattern for getting the job done..