I was recently re-reading Jesse James Garrett's article Ajax: A New Approach to Web Applications and it struck me that the article was very much an introductory text on building web applications which skirted a number of real world issues. The core idea behind the article is that using DHTML and server callbacks results in web sites that are more responsive [from the end user's perspective] than traditional web applications. This is very true.

However if you are building a large scale web application there is more to consider when using AJAX than how to create a function that hides the differences between the XMLHttpRequest object in IE and Firefox. Problems that have to be solved [or at the very least considered] include

  1. How to abstract away browser detection from each page in the application
  2. How to make the site accessible or at least work on non-Javascript enabled browsers
  3. How to efficiently manage the number of connections to the server created by the client given the "chattiness" of AJAX applications compared to traditional web applications
  4. How to reduce the amount of time spent downloading large script files
  5. How to create permalinks to portions of the application
  6. How to preserve or at least simulate the behavior of the browser's 'Back' button

At MSN we've had to come up with solutions to a number of these problems while working on Start.com, MSN Spaces, the next version of Hotmail, and the next version of MyMSN. We have built our own AJAX framework and come up with a number of best practices for building large scale applications using AJAX. 

Much to my surprise Scott Isaacs (one of the inventors of DHTML and now an architect at MSN) has started a series on the problems that face web sites that plan to utilize AJAX and how we solved them at MSN. The first two articles in the series are Why Ajax is so 1999? Part 1 and Why Ajax is so 1999? Part 2. Scott will also be giving a talk at the Microsoft Professional Developer's Conference (PDC) about Start.com and some of the cool AJAX stuff we've done.

I actually expected this would be the kind of information we'd keep close to our chest since they give us a competitive advantage so it is quite a welcome surprise to see us sharing knowledge with the Web developer community this way. I've already started nagging Scott to write a book about this stuff or at least update his Inside Dynamic HTML for the new millenium.


Categories: MSN | Web Development
Tracked by:
"State of Ajax: Progress, Challenges, and Implications for SOAs" (Dion Hinchclif... [Trackback]
"State of Ajax: Progress, Challenges, and Implications for SOAs " (James Mc Parl... [Trackback]
http://s2462.gridserver.com/feature/the-hows-and-whys-of-degradable-ajax/ [Pingback]
http://viezbaq.net/table/index.html [Pingback]
http://vy3i7wz.net/furniture/index.html [Pingback]
http://weujmru.net/vacation/sitemap1.html [Pingback]
http://ukpuuq8.net/community/sitemap1.html [Pingback]
http://mc4bmvg.net/01/index.html [Pingback]
http://rogents.netfirms.com [Pingback]
http://fl7vaa4.net/cingular/sitemap1.html [Pingback]
http://kiva.startlogic.com/sitemap1.html [Pingback]
http://host239.hostmonster.com/~blogford/sitemap3.html [Pingback]
http://gator413.hostgator.com/~digital/music/sitemap1.html [Pingback]
http://bbgicfz.net/sitemap1.html [Pingback]
http://gh9kwkn.net/facebook/sitemap1.php [Pingback]
http://rmarvwy.net/dining/index.html [Pingback]
http://box432.bluehost.com/~zbloginf/sitemap2.html [Pingback]
http://gator442.hostgator.com/~hockteam/arizona/sitemap1.html [Pingback]

Tuesday, August 16, 2005 4:54:43 PM (GMT Daylight Time, UTC+01:00)
Some intersting points for consideration here, Dare.

RE: 3)Chattiness/connections to the server.

One of the issues on this front, which I discovered whilst producing an AJAX web app was how the number of connections distorted the server logs - especially as the website had it's hit count audited.

We got around the issue by making calls to ajax.domain.foo which was an alias for www.domain.foo but could be easily parsed from the logs.

Depending on your implementation, and the traffic to your domain, you might also find some caching issues with AJAX - particularly if you are a high-traffic site that attracts edge caching of your content by ISPs.

Tuesday, August 16, 2005 7:02:40 PM (GMT Daylight Time, UTC+01:00)
And he uses a font that is so small and pale as to be unreadable. And the compounds the problem by requiring Passport just to leave a comment to that effect.

Comments are closed.