Softlion
Softlion

Reputation: 12625

jQuery selector optimisation : sizzle / pseudo / hidden

I used Visual Studio 2010 excellent javascript profiler to profile the javascript of a web page on Internet Explorer. (Analyze / Launch perf wizard / Instrumentation / JS application / profile js + url of page)

The perf report shows that jQuery's sizzle is the cause of the slowness (ie: some jquery selectors on my web page).

It shows the time spent is in Sizzle > filter > hidden > PSEUDO. I do not have any selector with :hidden, so i don't understand why it looses this much time in hidden.

I'm using jQuery 1.4.4 I tried with jQuery 1.5 and it is the same.

Upvotes: 0

Views: 538

Answers (1)

CaffGeek
CaffGeek

Reputation: 22064

As mentioned in the comment, :visible calls :hidden so if you're using that, it will show in the profiler.

Also note, that on the jQuery doc for the :hidden selector it mentions

Because :hidden is a jQuery extension and not part of the CSS specification, queries using :hidden cannot take advantage of the performance boost provided by the native DOM querySelectorAll() method. To achieve the best performance when using :hidden to select elements, first select the elements using a pure CSS selector, then use .filter(":hidden").

Upvotes: 2

Related Questions