W3C home > Mailing lists > Public > public-webapps@w3.org > April to June 2015

Re: Why is querySelector much slower?

From: Ryosuke Niwa <rniwa@apple.com>
Date: Mon, 27 Apr 2015 19:51:04 -0700
Cc: Glen Huang <curvedmark@gmail.com>, public-webapps <public-webapps@w3.org>
Message-id: <5998AAB6-43E6-4F36-B3C2-5B979A71B0CB@apple.com>
To: Jonas Sicking <jonas@sicking.cc>

> On Apr 27, 2015, at 7:04 PM, Jonas Sicking <jonas@sicking.cc> wrote:
> 
> On Mon, Apr 27, 2015 at 1:57 AM, Glen Huang <curvedmark@gmail.com> wrote:
>> Intuitively, querySelector('.class') only needs to find the first matching
>> node, whereas getElementsByClassName('.class')[0] needs to find all matching
>> nodes and then return the first. The former should be a lot quicker than the
>> latter. Why that's not the case?
> 
> I can't speak for other browsers, but Gecko-based browsers only search
> the DOM until the first hit for getElementsByClassName('class')[0].
> I'm not sure why you say that it must scan for all hits.

WebKit (and, AFAIK, Blink) has the same optimization. It's a very important optimization.

- R. Niwa
Received on Tuesday, 28 April 2015 02:51:32 UTC

This archive was generated by hypermail 2.3.1 : Friday, 27 October 2017 07:27:31 UTC