About Nicholas C. Zakas

Recent Posts

Separating JavaScript download and execution

Not too long ago, I wrote  a post entitled, Thoughts on script loaders1, in which I discussed my thoughts on the continuing introduction of script loaders such as LABjs and ControlJS. In that post I also mentioned what I thought was the main problem that led to existence of these libraries. That problem is the... […]

On UA sniffing, browser detection, and Alex’s post

Unless you’ve not been paying attention during the past week, you may have come across Alex Russell’s recent treatises on the cost of feature detection and one possible solution1. Alex is one of the smartest folks I’ve ever met, and I’ve always admired his willingness to share his opinion in any forum regardless of the... […]

The sorry state of the CSS3 specifications

With the recent support of CSS3 in browsers approaching an impressive level of consistency, you might be inclined to believe that CSS3 is a well-defined specification suitable for public consumption. You would be wrong on several counts. First and foremost, CSS3 is not a single specification but a collection of module specifications1. The logic behind... […]

Thoughts on script loaders

Last week, Steve Souders released his ControlJS project. The goal of the project is to give developers more control over how and when JavaScript files are loaded and executed on a page. It does so by using Stoyan Stefanov’s approach of preloading JavaScript without executing it and has the pleasant side effect of enabling parallel... […]

Response to John Resig’s comments about YUI

Earlier today, someone posted the following question on Quora: How could YUI improve its image compared to jQuery, MooTools, etc.? It’s an interesting question that got some interesting responses. The most interesting response, as many now have seen, came from jQuery creator John Resig. He wrote a very thoughtful piece that gives some great insights... […]

Mysterious arguments object assignments

This past week, I found what I thought was a bug in Firefox’s JavaScript implementation and filed it. A response from Brendan Eich indicated that the behavior in question was, in fact, compliant with the spec and had been implemented for some time. I ran a few more tests to try and figure out where... […]

Wanted: Dynamic execution contexts in JavaScript

One of the most common problems faced by web developers today is how to load third-party JavaScript onto a page without sacrificing the security and stability of the page. Certainly, it’s been repeated enough time that most know blindly including a JavaScript file that you didn’t write is a surefire path towards cross-site scripting (XSS)... […]

Introduction to Server-Sent Events

While the web development world is abuzz over the “exciting future” of Web Sockets, there’s another spec along the same lines that has me far more excited: Server-Sent Events. This spec is based on a feature that was first called Server-Sent DOM Events and implemented in Opera 9. The idea is pretty simple: a web... […]

What’s a web browser?

Last week I was in Amsterdam for the Fronteers conference and, as many people know, I took my mom along with me. This was a bit strange because never in my ten years working in web development has my mom known exactly what I get paid for every day. All she knows is that I... […]

Why is getElementsByTagName() faster than querySelectorAll()?

Yesterday, fellow Yahoo and SoundManager creator Scott Schiller expressed some confusion on Twitter over why getElementsByTagName("a") is faster than querySelectorAll("a") in nearly all browsers. There a JSPerf test comparing the two and you can that the speed comparison is fairly pronounced. In the browser I’m using right now, Firefox 3.6.8 on Windows XP, querySelectorAll("a") is... […]