rob cherny.com

About

My name is Rob Cherny and I'm a professional Web Developer with 16 years of experience creating Web sites and Web-based applications. This site is where I write about my work, and random other things...

Learn More

Loading...

Close Tab

Web Development

Ajax, Atlas, W3C Oh My!

Ajax is really starting to make it big, complete with a new XMLHTTPRequest W3C Standard Specification and everything. Just goes to show what a harmless article will do. Well, I guess there was actually a lot more to it than that.

History and Background of Ajax

When Ajax started to get big last year, it was a surprise to some. After all, the JavaScript technologies behind it had been around for years, introduced somewhere around MSIE 5.0. That's about the time Microsoft invented the XMLHTTPRequest object as an ActiveX control, which is the way IE6 until this day supports Ajax. Although read on, that's about to change.

Essentially the technology allows a Web developer, in the Web browser, to programmatically create an HTTP request and talk to the Web server without having to reload the page, as traditional Web applications always required.

For years, there were many ways to implement dynamic updates and talk to the server.

  • Frames
  • IFRAMEs
  • Hidden IFRAME Sources
  • Image()
  • XMLHTTPRequest... but not called "Ajax"

Going back a few years, you could send requests back to the server using the Image() object. If you create a new Image() JavaScript object and set it's source (.src) to a valid URL, you can send a query back to the server and log some data if you want to. No, you don't get anything useful back, but you can send data upstream all day long if you want to.

As time went by, clever Web developers came up with more ways of talking to the server. Some examples include Eric Costello writing "Remote Scripting with IFRAME" for O'Reilly. Going back further into the history of "DHTML", I'm pretty sure the DynAPI featured loading remote content, and that probably even worked in LAYER for Netscape 4. Scott Andrew used to go on about XML-RPC and Erik Arvidsson published his Xml Extras long before anyone recognized what the possibilities were, although it intrigued a few observant folks. Finally, folks that were paying attention noted it when the Mozilla project implemented it ... so the stirrings were out there and I remember thinking, "well now, this has real potential, if we could just use it!".

Now, I'm not saying I did this sort of thing all the time, I can probably count the number of times on one hand, but the techniques were there nonetheless and I remember reading about them and experimenting -- the big deal was it was difficult to rely on them. I distinctly remember a custom CMS tool I wrote which populated a drop-down menu as well as brought up a "file picker" layer in 2003 -- and that's pretty late in the game but certainly "pre" Ajax.

But, it got a name and some people started to use it in the mainstream, so good for us all. Just the fact that it got a name and some high profile companies started using it a lot really changed people's thinking, taking the Web closer to desktop software more so than ever. And that's a good thing.

Microsoft Introduces Atlas

Last year, Microsoft even got into the game a bit with their own implementation library, which of course they had to call something else to distinctively give it their own name, even though it's the same technologies. Of course, this offering, called Microsoft Atlas is tightly integrated with their tools like ASP.NET and Visual Studio.NET.

Frankly I haven't looked at it much, but there's been a few articles and a couple highly creditable JavaScript guys have evaluated it.

Finally, for the first time Internet Explorer 7 will support the XMLHTTPRequest object natively instead of via an ActiveX object. So, if you're doing some crazy browser detection, you should be warned.

So it has become one of the most exciting developments on the Web front in years, and with browser shares what they are today -- you can start to rely on it to an extent, whereas back in the day it was sort of questionable. That's really the biggest change besides the fact that it has a name now. Be careful though, as with any JavaScript technique, it should be used to enhance unless under strict controls, and it should degrade gracefully. But that's another article.

Examples of Ajax Online Today

There's tons of great examples of Ajax in practice today.

There's even books and conferences. It's come a long way, and pushed the Web closer to desktop software than ever.

Ajax and XMLHTTPRequest Object W3C Standards

So, at the beginning of April, the W3C standards body released its draft specification of the XMLHTTPRequest object. I was a little nervous, but looking over the specification, it looks fairly basic to adhere to the XMLHTTPRequest object we know. I haven't spent a long time on it, but I was pleased to see the participation on the mailing list of some big names and that the authors list included several folks from the browser manufacturers circles. Notably absent however was a Microsoft representative -- although Google, Opera, and Mozilla were all there.

I guess what pleases me most is that the W3C decided to do this, as in recent years there's been some controversy of their next moves in the Web space. Even to the point of representatives from the major browser manufacturers creating their own working group to come up with the next specification on Web Forms and what's sometimes called "HTML5". Fed up, they created the Web Hypertext Application Technology Working Group, called "WHAT" for short. Although, they did submit their spec to the W3C. This is the next interesting one to watch, but that's another article.

At any rate, there's a pretty good article over at DevSource which talks about Ajax and it's move over to standards. On to the next thing, but the more standards there are, the better off we all are.

Apr 29, 12:42 PM in Web Development (filed under Ajax, Web-Standards)

commenting closed for this article

In This Section