I don’t have time tonight to write the complete history, but I hope to get back and do that soon. In brief, the company I was working for at the time, Citibank, stayed firmly in the Netscape Communicator camp. At Citibank expense, I went to the Netscape Developer Conference in 1997 to hear firsthand about the latest client-side technologies, only to find Microsoft employees picketing the event, trying to crash the party. You couldn’t walk out of the complex without some Microsoft hiree trying to stuff leaflets in my jacket, explaining how wonderful Microsoft IE was going to be. It was really sick, and that behavior was symptomatic of Microsoft’s no-holds-barred, anything-goes war against Netscape. A war that unfortunately they ultimately won.
layer tag, glancing nervously over my shoulder at this new totally incompatible DOM that Microsoft had foisted on the world.
Microsoft’s idea was to use something called
document.all, which would rely on getting the ID of the page element you wanted to reference. This concept was similar to the
getElementById that ultimately won acceptance by the w3c, which was still in the process of developing its version of the DOM.
getElementById was not only a horrible mouthful compared with the elegance of
layer, it was also much more complicated to learn and employ. For awhile, I couldn’t imagine it actually gaining traction. But of course, by 2000, Microsoft had crushed Netscape, the w3c’s DOM was the accepted standard, and Microsoft went on to smother the web with everything Windows they could think of.
I’m not doing the story justice, because I’m in a rush this evening, but bear with me as I reminisce for a few more moments.
Ajax is great because it returns rich interactivity to the web client, and the winners will be not only web developers who â€œget itâ€ and do great, exciting new things with it, but more importantly, customers and visitors, who will finally see that websites don’t have to be boring scrolling, clicking, waiting, clicking, scrolling, loading, reloading labyrinths in which you try not to get lost. Persistence is again within grasp, and web applications are going to finally live up to their potential. Google maps was just the beginning, and the Ajax steamroller is picking up steam.
layer tag already had the capability of loading server content onto existing pages back in 1997. No, you couldn’t do this with
DIV’s and the DOM at that time, and you couldn’t get there with Microsoft’s
iframe, try as you might. But I was able to do Ajax-style code in 1997 for Citibank’s Intranet. Take a fresh look at what the
layer, including the layers property of
document, 1998. Here is a link to the
Besides its amazingly elegant implementation of events, CSS style manipulations, and DOM properties,
layer had the lovely, convenient, and logical
- A string specifying the URL of the layerâ€™s content.
To my way of thinking,
layer was a logical extension of HTML and together with the new CSS capabilities, had everything an interface designer could want. But it was not to be.
Having long ago resigned myself to
getElementById, I hadn’t given
layer any thought for many years until Ajax came around. When I heard what it was, my mind immediately flew back to that
src attribute. Of course, to read that Microsoft was being credited with creating
HTTPRequest only made my head ache a little. Well, let me just say very clearly that Microsoft did not originate the idea of allowing asynchronous calls to a server to retrieve content in the background. Even when they added it to IE, they didn’t exploit it. Why? *sigh* You’re not paying attention!
To celebrate, I started redesigning my WordPress blog a few weeks ago. I settled on using prototype and the script.aculo.us library, though there are many other very good ones. The more I studied prototype, the more impressed I became. And script.aculo.us is simply too beautiful and amazing to ignore. I’ve still got some polishing to do on some of these widgets, but I’ve got Ajax in the â€œnewsboxâ€ that displays links from my del.icio.us library, Ajax in the â€œnewsarticleâ€ free-floating box that displays individual items, Ajax in the new tabbed navigation panes in the sidebar, and script.aculo.us effects putting a gleam on everything. I’ve even fooled around with drag and drop in the sidebar (yeah, you can rearrange the tabbed panes if you like), and I have big plans for using that next on my e-commerce site, Classic 45’s.
Yes, there are still a few wrinkles in building rich web interfaces… both in the toolbox and on developer’s foreheads. But nearly all of them stem from IE 6.0’s dreadful support for CSS, and hopefully that will soon fade.