Head Rush Ajax
barryhawkins writes "
Programmers are flooded with choices about which technologies to pursue in order to maintain a marketable skillset. Even in a particular area of programming like web applications, one must choose carefully where to invest time. Ajax, to the regret of some and delight of others, has emerged as a means of providing rich, responsive web applications that are highly cross-platform. However, when arriving home after a 10-hour day at the office programming, who has the energy to plow through yet another new facet of emerging technology? If a developer is going to invest their free time in self-driven career development, should it not be at least remotely enjoyable? Judging from the content of O'Reilly's new release Head Rush Ajax, their answer is yes." Read the rest of Barry's review.
Head Rush Ajax
author
Brett McLaughlin
pages
413
publisher
O'Reilly Associates
rating
9
reviewer
Barry Hawkins
ISBN
0-596-10225-9
summary
A learner's introduction to Ajax, Asynchronous JavaScript and XML for web application programming
Like its forerunner the Head First series, the Head Rush line approaches learning a given technical topic with the principles derived from studies in cognitive science, neurobiology, and educational psychology. It comes as no surprise that the classic approach of turgid, monotonous, visually-fatiguing tomes is not the ideal way to have someone learn a topic. Learning is aided by having variation in the way content is presented. This book moves between presentation of information, application through interactive exercises, and review questions that stimulate the reader and invite them to continue in the book's journey through Ajax. Each exercise is also tied to a storyline, where the reader has a person with an application that needs to be enhanced by the application of the skills being learned.
Head Rush Ajax scales well. Ready-to-run scripts for the more technical components of the sample applications are provided so that a reader with only a background in HTML and CSS will not experience barriers to participation early in the book. This facility does not come at the expense of the experienced web developer; anyone who knows their way around a PHP script and databases is free to write the server-side code on their own. Some readers may look upon the choice of PHP for the back-end scripts as regrettable, particularly those with Java and .Net backgrounds. However, the focus is on Ajax itself, and not the particular back-end platform providing the HTTP responses. Those who look upon that sort of thing with scorn typically view Ajax as a novelty itself, so the number of complaints about using PHP should be relatively low; the dissenting voices will have probably passed over Ajax for the time being anyway.
The author never takes himself too seriously; the informal tone of the book is comfortable, like having a conversation with one's colleagues at the office. The balance of levity and solid technical content is refreshing, making this volume of some 400 pages reach its end surprisingly soon. Retro cartoon graphics and narrative comments like "Now, everyone hates you. You're an idiot, and all this Ajax stuff was a waste of time" when a URL caching error is uncovered make for a genuinely enjoyable read.
The Document Object Model, or DOM, has long had a reputation for being an unwieldy and problematic interface to manipulate. The tree metaphor used in this book along with the series of progressive exercises present the DOM in a refreshingly approachable manner. By the end of the DOM-specific coverage, an entire application has been created that is highly dynamic yet involves no Ajax-specific coding. The critical role of the DOM in effective use of Ajax is driven home without being heavy-handed.
The choice between using XML and JavaScript Object Notation (JSON) for receiving data via HTTP responses is another entertaining treatment of a topic that is often grounds for argument between practitioners of web development. The author comes across with a pragmatic viewpoint, preferring JSON as the simpler choice that is most often adequate and does not bear the high ceremony that accompanies proper handling of XML via the DOM. Two of the sample applications choose opposite means of receiving their data, once again fleshing out a topic in a concrete manner rather than pontificating about the virtues of either approach.
The progression of the book is masterful. The types of issues that typically plague web applications are addressed in the order they tend surface during the lifecycle of a real-world application. Proper functionality is the first stage, followed by enhanced functionality, then onto issues with synchronicity, security, and more complex domain model requirements. A reader can pass through an encapsulated representation of application lifecycles by working through the book from start to finish.
The goal of Head Rush Ajax is to have the reader learn Ajax, not master it. At the conclusion, the author appropriately offers topics for further exploration in the form of two appendices. The first appendix covers Ajax toolkits, user interface libraries, DOM utilities (most of which are built plugins for the browsers in use on desktops every day), and JSON libraries. Links to the project sites provide easy access to pick up where the book's coverage leaves off. The second appendix provides deeper insight on the internals of two JavaScript utilities provided for use in the exercises throughout the book. One is an Ajax-specific set of common infrastructure for typical Ajax applications, while the other provides convenient methods for DOM manipulation. Head Rush Ajax is a most enjoyable launchpad into the world of Ajax web applications, well worth the investment in time and money."
You can purchase Head Rush Ajax from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Like its forerunner the Head First series, the Head Rush line approaches learning a given technical topic with the principles derived from studies in cognitive science, neurobiology, and educational psychology. It comes as no surprise that the classic approach of turgid, monotonous, visually-fatiguing tomes is not the ideal way to have someone learn a topic. Learning is aided by having variation in the way content is presented. This book moves between presentation of information, application through interactive exercises, and review questions that stimulate the reader and invite them to continue in the book's journey through Ajax. Each exercise is also tied to a storyline, where the reader has a person with an application that needs to be enhanced by the application of the skills being learned.
Head Rush Ajax scales well. Ready-to-run scripts for the more technical components of the sample applications are provided so that a reader with only a background in HTML and CSS will not experience barriers to participation early in the book. This facility does not come at the expense of the experienced web developer; anyone who knows their way around a PHP script and databases is free to write the server-side code on their own. Some readers may look upon the choice of PHP for the back-end scripts as regrettable, particularly those with Java and .Net backgrounds. However, the focus is on Ajax itself, and not the particular back-end platform providing the HTTP responses. Those who look upon that sort of thing with scorn typically view Ajax as a novelty itself, so the number of complaints about using PHP should be relatively low; the dissenting voices will have probably passed over Ajax for the time being anyway.
The author never takes himself too seriously; the informal tone of the book is comfortable, like having a conversation with one's colleagues at the office. The balance of levity and solid technical content is refreshing, making this volume of some 400 pages reach its end surprisingly soon. Retro cartoon graphics and narrative comments like "Now, everyone hates you. You're an idiot, and all this Ajax stuff was a waste of time" when a URL caching error is uncovered make for a genuinely enjoyable read.
The Document Object Model, or DOM, has long had a reputation for being an unwieldy and problematic interface to manipulate. The tree metaphor used in this book along with the series of progressive exercises present the DOM in a refreshingly approachable manner. By the end of the DOM-specific coverage, an entire application has been created that is highly dynamic yet involves no Ajax-specific coding. The critical role of the DOM in effective use of Ajax is driven home without being heavy-handed.
The choice between using XML and JavaScript Object Notation (JSON) for receiving data via HTTP responses is another entertaining treatment of a topic that is often grounds for argument between practitioners of web development. The author comes across with a pragmatic viewpoint, preferring JSON as the simpler choice that is most often adequate and does not bear the high ceremony that accompanies proper handling of XML via the DOM. Two of the sample applications choose opposite means of receiving their data, once again fleshing out a topic in a concrete manner rather than pontificating about the virtues of either approach.
The progression of the book is masterful. The types of issues that typically plague web applications are addressed in the order they tend surface during the lifecycle of a real-world application. Proper functionality is the first stage, followed by enhanced functionality, then onto issues with synchronicity, security, and more complex domain model requirements. A reader can pass through an encapsulated representation of application lifecycles by working through the book from start to finish.
The goal of Head Rush Ajax is to have the reader learn Ajax, not master it. At the conclusion, the author appropriately offers topics for further exploration in the form of two appendices. The first appendix covers Ajax toolkits, user interface libraries, DOM utilities (most of which are built plugins for the browsers in use on desktops every day), and JSON libraries. Links to the project sites provide easy access to pick up where the book's coverage leaves off. The second appendix provides deeper insight on the internals of two JavaScript utilities provided for use in the exercises throughout the book. One is an Ajax-specific set of common infrastructure for typical Ajax applications, while the other provides convenient methods for DOM manipulation. Head Rush Ajax is a most enjoyable launchpad into the world of Ajax web applications, well worth the investment in time and money."
You can purchase Head Rush Ajax from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Actully my description depicts exactly what the framework does it allows communication between the client and server to make a web application more dynamic. Now if I had said "creating synergy between the client and server, with bleeding edge technology, that creates a new development paradigm" I could see your complaint.
If you are in the market for some Ajax knowledge, you should check out Relevance LLC's reviews of Ajax books. A couple of smart guys. They have reviewed 7 books so far.
This is not the sig you are looking for...
Amazon has it about $10 cheaper than BN.
Expert Java EE Consulting
Here's a list of 20 AJAX online tutorials:& p=2212&#entry2212
http://121space.com/index.php?showtopic=1875&st=0
It's moving so fast I'd be hesitant to grab a book yet -- YMMV.
fak3r.com
I realize this will remove 20 points from my geek rating to say "wow, this stuff is really easy" because we're the wizards with the black boxes that do magic stuff that confuses mortals...but jeez, this AJAX stuff is pretty simple. Do a 10 minute tutorial and say "Huh, so that's it..."
And basic AJAX skills CAN be acquired with a 10 minute tutorial if you know a little javascript and a little of any CGI-type backend (PERL, ASP, PHP, PLONE etc.)
Don't be afraid of the hype if you feel you don't have the time to learn. Any web programmer needs to know this, and it's pretty simple. Sure, you can do some weird cool stuff and get complex, but the concept is simple and you don't need to learn anything really new.
Take a tutorial now. At work. I mean, the stuff on the screen is still just magic inscriptions and incantations to the non-geeks and PHBs anyway.
I agree... sort of. I have one of the Head First books (something about CSS and HTML - needed to learn CSS). As far as teaching goes, it's good. I skimmed the book pretty quickly (because I had some familiarity with the subject matter to begin with). However, the book is now useless. The index is absolutely atrocious (of the HTML/CSS book, that is - I have no experience with the Ajax book). It is completely unusable as a reference - the only way to refer to anything in the book is to go back and read the whole thing again, because there's no other way to find a piece of content. Any book about CSS whose index doesn't have an entry for "text-align" has a real problem.
I tried Ajax when I first heard about it, which I think was when it was first gathering mass. Initially, the responseXML DOM object was a pain in the ass and that made me stay away from it. After I accepted that it would be difficult, I moved on to sending values back with responseText. That proved to be very easy. Then, I found that constantly creating XMLHttpRequest objects and setting up the proper parameters for IE vs. Everyone Else was a pain in the ass and that made me not like it. Eventually I found out about prototype.js, which was nice. I ended up ditching it because it was a little bloated to be used for Ajax-only stuff. So, I wrote my own JavaScript Ajax "class" to handle all the sending, waiting, receiving, and callbacks. I even have it create an associative array representation of the XML and "trace" so it looks like a print_r'd array in PHP. All I have to do is set the Ajax object to a variable, call a function in the object (that specifies the file to query, the post string, and the callback function), write the callback function, and write some php. It makes Ajax painless.
My point is: If you want to "learn" Ajax, learn how it works, write a class that does the stuff you will typically do, then use the class. It'll save you tons of time, code, and frustration in the end. Ajax is actually worth using now and has helped my company separate PHP code and HTML in our intranet web apps without using a template engine, which makes our PHP guy happy that I'm not fudging with his code and makes me happy that our PHP guy isn't fudging with my design.