Chapter 7. Client-Server Communication

The goog.net package contains various utilities for communicating with a server from a web browser. With the growing popularity of Ajax, the most common technique is to use an XMLHttpRequest object to request updates from the server. As this chapter will explain, that is not the only option, but it is certainly a good place to start.

Server Requests

Like all modern JavaScript libraries, Closure provides a cross-browser abstraction for sending an XMLHttpRequest to the server. This section introduces the classes in goog.net that support this abstraction.

goog.net.XmlHttp

In the simplest case, the built-in XMLHttpRequest object is used to load the contents of a URL asynchronously and then pass the data to another function:

var getDataAndAlertIt = function(url) { // This line will not work on Internet Explorer 6. var xhr = new XMLHttpRequest(); xhr.open('GET', url, true /* load the URL asynchronously */); xhr.onreadystatechange = function() { // When an XHR enters ready state 4, that indicates that the request // is complete and that all of the data is available. if (xhr.readyState == 4) { // In this case, alert() is used to handle the data. alert('This alert will display second: ' + xhr.responseText); } }; xhr.send(null); }; // Because the XHR will load the data asynchronously, this call will return // immediately even though the data is not loaded yet. getDataAndAlertIt('http://www.example.com/testdata.txt'); // This statement will execute while testdata.txt ...

Get Closure: The Definitive Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.