Let's take a look at some examples to see how Ajax adheres to these performance guidelines in the real world.
In our first example, we'll look at the Ajax version of Yahoo! Mail (http://mail.yahoo.com), which is in beta at the time of this writing.
When the user starts the Ajax version of Yahoo! Mail, it downloads the body of the user's first three email messages. This is a smart passive Ajax request. There's a good chance the user will click on one or more of these email messages, so having them already downloaded in the client means that the user sees her email messages without having to wait for any Ajax responses.
If the user wants to view an email message that's not in the first three, an active Ajax request is made. The user is waiting for this response so she can read the email message. Let's look at the HTTP headers.
GET /ws/mail/v1/formrpc?m=GetMessage[snip...] HTTP/1.1 Host: us.mg0.mail.yahoo.com Accept-Encoding: gzip,deflate
HTTP/1.1 200 OK Date: Mon, 23 Apr 2007 23:22:57 GMT Cache-Control: no-store, private Expires: Thu, 01 Jan 1970 00:00:00 GMT Content-Type: text/xml; charset=UTF-8 Content-Encoding: gzip Connection: keep-alive
Now imagine that the user leaves Yahoo! Mail to visit another web site. Later, she returns to Yahoo! Mail and again clicks on the fourth email message. Not surprisingly, the exact same request is sent again because the previous Ajax response was not saved in the browser's cache. It wasn't cached because the ...