- From: Glen Huang <curvedmark@gmail.com>
- Date: Tue, 28 Apr 2015 11:30:05 +0800
- To: Ryosuke Niwa <rniwa@apple.com>
- Cc: Jonas Sicking <jonas@sicking.cc>, public-webapps <public-webapps@w3.org>
I wonder why querySelector can't get the same optimization: If the passed selector is a simple selector like ".class", do exactly as getElementsByClassName('class')[0] does? > On Apr 28, 2015, at 10:51 AM, Ryosuke Niwa <rniwa@apple.com> wrote: > > >> 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 03:30:38 UTC