Who is the author?
Phil Ballard is behind themousewhisperer and crackajax.
Description
The small book of some 220 pages has four parts.
The first part resumes what you need to know before doing any AJAX: HTML, HTTP, JavaScript, PHP, XML. Explains javascript-access to XML DOM.
The second part introduces AJAX. AJAX is motivated by a better user experience that is more like a desktop application and by saving bandwidth. Phil goes on to introduce the central part of AJAX, the XMLHttpRequest Object, with simple examples returning html-snippets as text.
The third part show how to use the XMLHttpRequest object with text and with XML, asynchronously, with SOAP, and lists some gotchas. The SOAP example constructs the SOAP requests directly in javascript and takes the SOAP response apart in the same way.
The fourth part briefly recommends three toolkits for AJAX programming:
prototype.js, by Sam Stephenson, which provides useful DHTML functions and ajax-encapsulation.
Rico, which goes on top of prototype.js, which lets you register page elements for manipulation from an AJAX-response. Also gives drag & drop, which is not AJAX, but often will be followed by an AJAX communication of the user action to the server.
XOAD, PHP server side AJAX support, by Stanimir Angeloff. It makes PHP classes callable from Javascript, and can change page elements from PHP.
Opinion
The book is generally well written, although sometimes I would have preferred to be told more clearly what the problem and the main idea of the proposed solution are, before being shown the details of the solution.
The book really starts from first principles. It may seem a little slow sometimes, but that is good. An example for slowness is that there are several repitions of browser-independent XMLHttpRequest creation.
It is not tied to any framework or library and lets you understand what is behind the libraries by experimenting directly with the XMLHttpRequest object. There is a little use of PHP on the server.
In the explanations, I feel that UML sequence diagrams would have helped, for example on page 79. With AJAX, it is important to understand what methods are called, when they are called, and where they are.
I like that the authour seems in favour of using AJAX for returning html text, and of using the simple REST philosophy, when these simple techniques are sufficient for a particular design. Too often people get tempted into using more complex technologies without being clear about whether they are really necessary.
The SOAP example constructs the SOAP envelope manually and takes the SOAP response apart manually. Of course, SOAP is a lot of work if you do it that way! Realistically, must use a library that encapsulates the SOAP protocol and lets you communicate in terms of objects. SOAP is remote procedure call. It is only advisable to use SOAP if you really need the generality of remote procedure call and if you do, SOAP is a better option than making your own protocol.
For who is the book?
The book is for web programmers that already know HTML, HTTP, JavaScript and want to start using AJAX. The book recaps the important points of these topics as far as they will be used in the book.