A Belated Word on The JavaScript Anthology

Tweet

The JavaScript Anthology cover shotSitePoint’s latest title, The JavaScript Anthology, has been out for over two weeks, and I just realized we never mentioned it here on this blog.

<selfpromotion class="blatant">

If you’re serious about JavaScript (or even if you’re serious about getting serious), this really is our sweetest title yet. Granted, I edited the thing, so I’m a little biased, but the fact that I like it even better than my own book should say something. First of all, it’s written by two heavyweights in the world of DOM scripting (née DHTML):

James Edwards, better known as brothercake, is the man behind UDM — the Ultimate Drop Down Menu, which has the distinction of being not only the most cross-browser-compatible hierarchical menu system, but also the most accessible, as it fully complies with the W3C’s Web Content Accessibility Guidelines 1.0.

In the chapters he contributed to the book, James covers a lot of ground: he offers an introduction to JavaScript that focuses mostly on how it can and should be used in modern, best-practice web development, rather than dwelling on mundane details like variables and if-else statements; he gives a remarkably sanguine treatment of frames and pop-up windows, techniques that get a bad rap these days but which, in specific cases, still have a place in the enlightened developer’s toolbox; he takes a fresh look the “old favourite” topic of image preloading, and demonstrates using a progress bar to keep the user informed of what’s going on behind the scenes; and finally he takes a broad look at JavaScript performance–both in terms of how to make it run quickly and efficiently in various browsers (particularly those with problems like memory leaks), and how to make writing and maintaining your code less time consuming.

But by far James’s biggest contribution to the book is in his personal area of expertise: building complex interfaces like drop-down menu systems without compomising accessibility. In the book’s two biggest chapters, James builds from scratch a number of menu systems that offer all the slickness and compatibility of his amazing UDM4 product, and then unflinchingly tackles the accessibility issues that come with such interfaces, ensuring they remain fully accessible to both keyboard-only and screen-reader users. This material alone is, in my opinion, worth the price of admission.

Co-author Cameron Adams, also known as the man in blue brings to the book a strong design sense, as well as a passion for pushing the capabilities of JavaScript to their limits.

In Cameron’s chapters, he introduces the Document Object Model (DOM), and shows how to overcome its annoying limitations; he shows off what I consider the single most elegant way to validate forms prior to submission that I have seen; he delves into all things DHTML, looking at browser compatibility, dynamic modification of CSS, the difference between event handlers and event listeners, and techniques for JavaScript-powered animation; he takes JavaScript to the next level by introducing cutting-edge techniques like AJAX requests, rich text editing, so-called “dropsheet” dialog boxes, and auto-complete fields; and he demonstrates how to manage the masses of code that these techniques can produce, through the use of JavaScript’s object oriented language features… and all with a healthy dose of geeky, pop culture references.

Though somewhat less glamorous, all the basics of (and sneaky tricks for) handling numbers, strings, array, cookies and dates/times are covered in the book as well. At nearly 600 pages, The JavaScript Anthology will give you a complete picture of today’s cutting edge JavaScript techniques. Check out the sample chapters — over 150 pages of free JavaScript goodness.

</selfpromotion>

And now back to our regularly-scheduled blogging.

Free book: Jump Start HTML5 Basics

Grab a free copy of one our latest ebooks! Packed with hints and tips on HTML5's most powerful new features.

  • weirdmonkey

    is this book for people who never done javascript before ?

  • danderso

    looks interesting

  • http://www.sitepoint.com/ Kevin Yank

    is this book for people who never done javascript before ?

    If you’re familiar with basic programming principles like variables and flow of control, then yes. If not, you’ll want to follow one of the introductory JavaScript tutorials (like ours) before tackling this book.

  • Craig

    Any chance you could bring a few copies to the WSG meeting in Sydney?

  • http://www.sitepoint.com/ Kevin Yank

    Any chance you could bring a few copies to the WSG meeting in Sydney?

    I would if I were going to be there… Have you got a plane ticket for me?

  • Skyblaze

    If you’re familiar with basic programming principles like variables and flow of control, then yes. If not, you’ll want to follow one of the introductory JavaScript tutorials (like ours) before tackling this book.

    Well it isn’t true, ’cause for example i noticed that in the first chapter it talks about event handlers etc. that you must already know as a concept; infact it talks about that knowing that the reader already knows the argument.

  • Kailash Badu

    I wish i could bye that book here in Nepal.

  • http://boyohazard.net Octal

    After reading Simon’s excellent (Re)introduction to Javascript (and after reading the sample chapters) I decided to put this book on my wishlist

  • http://www.pendleton-naz.org/blog EOBeav

    I know just enough JavaScript to be dangerous. I’ve ordered my JavaScript Anthology book, and it will be here day after tomorrow. Just in time for Spring Break. Can’t wait!

  • ugadarnell

    Since reading the sample chapters, I’ve finally learned how to separate my JavaScript from my HTML properly. I also finally learned how to properly handle events in JavaScript. I was actually able to understand the Dojo Framework’s event handling afterward as well. I learned more from these sample chapters than from any other JavaScript instruction or reference.

    This book actually tells you how you should be building JavaScript on your webpages to make it cross-browser compatible, rather than just explaining how people used to do it, or how to do it with the latest standards (which don’t work in all browsers). More technical books should be like this book.

    I’ll be ordering it soon myself if I can’t convince my boss to purchase it for me. This book really is what I’ve been missing in my study of client-side programming!

    I really liked the sample chapters. Thanks to anyone who took part in getting this book out there.

  • Anonymous

    Craig: I’ll be talking at a Sydney WSG meeting in June, to which I’ll probably bring along a few copies (if you can hang on that long).

    There’s also a bunch of workshops I’m doing around Australia with Russ Weakley in May:

    http://maxdesign.com.au/workshop-javascript2006/

  • http://www.privatetrader.biz keithlaw

    I have been using this book for the last week. I am struggling with some of the code examples on eventhandlers and eventlisteners. The book does often assume you know more than you do ( certainly in my case ). Page 16 it says: ” You get the idea!” Actually I get the idea but not the how to implement it.

    This topic is key to the whole use of javascript and a little more clarity for the slow learners would have been useful.

    I now have a library of 9 sitepoint books – the clearest are the css anthology and Kevin’s PHP/SQL – the most difficult are the Dynamic HTML and this one.

  • http://www.brothercake.com/ brothercake

    @keithlaw – I hear what you’re saying – a few of the examples in chapter 1 are quite advanced and not fully explained, and that’s because we needed to put quick, practical solutions in place.

    The one you mentioned – the addLoadListener – is a prime example, where there needed to be a ubiquitous solution, but it was really too early to explain it properly. That’s why the chapter refers forward to Chapter 13, where event listening is explained in more detail from the ground up :)

  • http://www.experioronline.com Jenny McDermott

    Aw, Jeez. Now I have to buy another book. Someday I WILL spend money on something else!