Recent Posts

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... […]

Upcoming talks

In short order, I’m going to be giving a bunch of talks at various places in the universe, and am both excited and a little bit overwhelmed by the upcoming schedule. A lot of people don’t realize that I’m not an evangelist – it’s not my job to go to conferences or prepare talks. I’m... […]

Learning from XAuth: Cross-domain localStorage

I typically don’t get too excited when new open source JavaScript utilities are released. It may be the cynic in me, but generally I feel like there’s very little new under the sun that’s actually useful. Most of these utilities are knockoffs of other ones or are too large to be practically useful. When I... […]

The value of HTML validation

This post has been percolating in my mind for some time, and reading Chris Heilmann’s post about Remy Sharp’s site. Chris and I have had more than a couple exchanges about this very topic and we’ve had to agree to disagree in the past. I’ve been very vocal, both publicly and privately, about my disdain... […]

What is a non-blocking script?

It was just a couple of years ago that Steve Souders introduced the concept of blocking vs. non-blocking into the common lexicon of web developers around the world. His big focus was pointing out how <script> tags block the rendering of the page as well as the downloading of other resources. Obviously, this is really... […]

Working with bidirectional (bidi) text and RTL languages on the web

While a lot of focus in the web development world has shifted to mobile development, there’s still a subject within desktop development for which that hasn’t been much written: dealing with bidirectional (bidi) text and right-to-left (RTL) languages. The two languages that people frequently discuss when the topic of RTL comes up are Hebrew and... […]

Determining if an object property exists

One of the most basic tests developers perform in JavaScript is whether or not a particular property exists on an object. Since feature detection is the preferred method of code forking, developers are encouraged to test for the existence of properties before using them. There is a lot of buggy JavaScript code out there as... […]

Empty string URLs – browser update

Frequent readers will remember my mission to stop browsers from making automatic requests when an empty string URL is reference in script. My mission began with a post entitled, Empty image src can destroy your site, in which I explained just how devastating this browser quirk can be to an enterprise system. After that point,... […]

Copyright © 2004-2016 Nicholas C. Zakas. All Rights Reserved. All code examples on all pages, unless otherwise indicated, are BSD licensed. Blog Feed