AJAX is shorthand for tools and design practices that allow the user to interact with the server without reloading an entire web page. A good example is the kind of interface provided in Gmail, where message information is loaded into the interface without needing to reload every element on the page.
To say that AJAX increases server load would indicate that AJAX is creating some sort of server transaction that didn’t exist before. Let’s see, what is AJAX used for? A person clicks on a link…the browser requests information from the server…the server interprets the request, pulls the data, and sends it back…the browser interprets the code and displays it.
Sounds like every dynamic page you see on sites that don’t use AJAX at all. However, on those sites, you also get the server overhead of dealing with requests for any extra content that might have already been loaded, if the browser doesn’t just use the cached version.
I’m not knowledgeable enough to declare Tim Bray right — he doesn’t need my endorsement — but if you’re using AJAX to reproduce functionality that was already there, I just don’t see how it could significantly increase your server load. Seems like it should decrease it, more often than not.
Update: I understand the argument a bit more: Fetching smaller bits of data that add up to a whole costs more than grabbing the whole set of data at once. However, as Mr. Newport points out, this is a design issue in the application. I’m sure the possibility of inefficient design means people will use inefficient design, but that’s still possible with any dynamic language that pulls sets of data. The question has to be whether the user only needs a small amount of the data, and will leave the rest alone, or whether they will normally look at all of it.