A lot of the fundamentals have not been really new to me but it actually did not hurt to go through this again and add some more solid knowledge around a few topics and some great tips by the author like
- the difference between GET and POST and how to handle that
- usage of an anonymous inner function as the easiest way to handle multiple XMLHttpRequest objects
- usage of array type names for form elements to handle many forms and containing elements through arrays
- usage of literals as an index for arrays in PHP
- handling timeouts
- handling image maps
- the real difference between client side and server side programming
As I mentioned browser: what I really like as well about the book is that the author puts a lot of focus on the differences of browser and what works and what doesn’t work in either Microsoft’s Internet Explorer (IE) or Mozilla based browser. Capturing mouse events for instance works very different in IE vs. Firefox and the author shows an elegant way to write a wrapper function to deal with both cases. There are four different dynamic HTML properties available, but only one works in Firefox: innerHTML. And most annoying is the way Mozilla based browser create a DOM ( the Document Object Model ) from a web page compared to IE: for some strange reason the DOM created by a browser like Firefox contains blank elements for the indents in front of nested tags. Hard to explain, but this is a great way to confuse programmers and make properties like firstChild or nextSibling hard to use. Again a nice way is shown how to detect whether a Mozilla based browser is used and to remove those dummy “white space node"s” in this case. Well done ! The author also highlights what works in both browsers and thus gives great advices what to consider when you want to develop some web applications supposed to work in both types of browser.
So, if you consider to do some Ajax web development, this is a must read ! 12 Chapters – if you do 1 per day you are done in two weeks. It takes may be 1 or 2 hours per chapter including trying out the examples. Well invested time, to my mind !