For the record there where a lot of people that where doing the same thing before the XHR object, they where just using an iframe and polling to get the data which was usually an HTML snippet or XML. They would construct the url for data with JS in the main frame, change the url of the hidden frame to point to a different CGI script, get the data and read it into JS variables. It was just that none of them got the exposure of Gmail or Outlook web. Now in saying that iFrame polling was a huge hack and a major PITA but it worked. IIRC one of the major CGI/Perl chat apps used this hack to update the web chat window.