You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When trying to find an element which matches a delegation selector, the findTarget function must select every element which matches the selector (potentially expensive), and loop that selection for each depth level in the DOM tree. It could get pretty suboptimal when the matched selection is large.
The most optimal way would be to go up in the DOM tree, calling matchesSelector once per level.
matchesSelector is a bleeding edge feature (I don't think any browser supports it without prefix yet), but Sizzle (and thus, jQuery) has it.
I propose the use of the currently available matchesSelector functions, and the addition of a setMatchesSelectorFunc function, receiving a function(selector) -> boolean. Users can use that to pass in their shims.
This does not mean that querySelector should be dropped. Just that browsers with matchesSelector will have better delegation performance.
The text was updated successfully, but these errors were encountered:
I'm open to a change for this, last I heard there were some concerns around the performance of matchesSelector() over alternatives but that was long ago when it was brand new. I do some heavy feature detection for matchesSelector() and query engine matches() discovery in traversty that may be of use, there would just need to be a solid fall-back where there is neither a native matchesSelector() nor a query engine plugged in with some kind of matches() support.
When trying to find an element which matches a delegation selector, the findTarget function must select every element which matches the selector (potentially expensive), and loop that selection for each depth level in the DOM tree. It could get pretty suboptimal when the matched selection is large.
The most optimal way would be to go up in the DOM tree, calling matchesSelector once per level.
matchesSelector is a bleeding edge feature (I don't think any browser supports it without prefix yet), but Sizzle (and thus, jQuery) has it.
I propose the use of the currently available matchesSelector functions, and the addition of a setMatchesSelectorFunc function, receiving a
function(selector) -> boolean
. Users can use that to pass in their shims.This does not mean that querySelector should be dropped. Just that browsers with matchesSelector will have better delegation performance.
The text was updated successfully, but these errors were encountered: