About Nicholas C. Zakas

Recent Posts

.NET to be more like JavaScript

This was an interesting read I found today: New “Orcas” Language Feature: Extension Methods. The point of the post is to discuss a new upcoming feature for .NET languages in which developers can add their own methods to objects without touching the class definition. Essentially, at any point you can add a method to any... […]

The new My Yahoo! Beta has launched, and I helped

For the past nine months, people have been asking me what I’ve been doing at Yahoo! since I joined. They’ve asked me to talk about it, to blog about it, to let everyone know what was the draw that got me to go to Yahoo! over Google so long ago. It was the opportunity to... […]

Another Pro Ajax 2e excerpt

The marketing blitz for Professional Ajax, 2nd Edition has begun. As part of it, you benefit by being privy to free excerpts along the way. The latest excerpt, courtesy of Wiley, is on Ajax Debugging using Microsoft Fiddler. This is a section from the Ajax Debugging chapter of the book. I hope you enjoy it... […]

Free excerpt from Professional Ajax, Second Edition

The good folks at the YUI Blog have just posted an exclusive excerpt from Professional Ajax, Second Edition. Thanks to Eric Miraglia from the YUI team and my editor Jim Minatel for making this deal. It’s incredible to have the support of both of you, I can’t thank either one of you enough. […]

A note on JavaScript performance

There’s a lot of focus on the performance of JavaScript in modern web applications. Sites are routinely panned for being too slow, using too much JavaScript, and interacting sluggishly. There’s a lot of talk about this library being too big, that application using too much code, etc. Typically, the suggested solutions are: Crunch your code.... […]


In response to a previous post, I was challenged to come up with a way to determine that elements had certain similarities without using CSS queries. Since this may benefit others, I decided to spin off the long comment thread into another post. I’ve called my solution getElementsMatching(): function getElementsMatching(tagName, matcher) { var elements =... […]

What’s Nicholas doing now?

Over the past month, I’ve been contacted by people asking my input on JavaScript-related topics for things they’ve been working on. I’m always interested in dropping my opinion on whoever it is that will listen, so I said sure. Now, the first wave of these are hitting the Web. In case you’re bored at work,... […]

What’s the deal with CSS query engines?

Lately, there seems to have been an explosion of client-side CSS query. The current offerings are: jQuery MochiKit Prototype Behaviour DomQuery dojo.query The free market tends to work in such a way as to saturate itself when consumer demand is high, but I really question the value of these engines. Was there really a demand... […]

Announcing Professional Ajax, Second Edition

It’s with great excitement that I’d like to announce the upcoming release of Professional Ajax, Second Edition next month. Due to the tight deadlines we had for the first edition, I simply didn’t have the time to put as much into the book as I had originally planned. I always had it in the back... […]

Event order of blur and change

I’m in the middle of fighting a battle with the blur and change events on a textbox. The requirement is simple: if the text changed in the textbox after losing focus, do one thing; if the text hasn’t changed when the textbox loses focus, do something else. This led me to an experiment to determine... […]