6. Performance
Matching/filtering improved consistently by ~10%
quickIs from event.js moved to Sizzle.filter
Simple selectors (id only, tag only, class only) improved
by about 5% overall
Element-rooted ID selections: 300% improvement
7. Performance
Matching/filtering improved consistently by ~10%
quickIs from event.js moved to Sizzle.filter
Simple selectors (id only, tag only, class only) improved
by about 5% overall
Element-rooted ID selections: 300% improvement
Shorter codepaths to querySelectorAll and
matchesSelector
8. Filtering and matching
1.7.2 1.8
*Based on http://jsperf.com/jquery-id-init/4 and
http://jsperf.com/jquery-id-init/6 (higher is better)
9. Filtering and matching
1.7.2 1.8
100
75
50
25
0
event trigger simple complex element-rooted ID
*Based on http://jsperf.com/jquery-id-init/4 and
http://jsperf.com/jquery-id-init/6 (higher is better)
12. Ok, there were bugs.
Improved QSA/matchesSelector bug-detection
13. Ok, there were bugs.
Improved QSA/matchesSelector bug-detection
bypasses in certain browsers on certain selectors
14. Ok, there were bugs.
Improved QSA/matchesSelector bug-detection
bypasses in certain browsers on certain selectors
class[^$*]=”” (Opera/IE9)
15. Ok, there were bugs.
Improved QSA/matchesSelector bug-detection
bypasses in certain browsers on certain selectors
class[^$*]=”” (Opera/IE9)
:checked won’t return selected options as per the
spec in versions of Chrome/Safari/Opera
16. Ok, there were bugs.
Improved QSA/matchesSelector bug-detection
bypasses in certain browsers on certain selectors
class[^$*]=”” (Opera/IE9)
:checked won’t return selected options as per the
spec in versions of Chrome/Safari/Opera
attroperties IE8 (attributes are everywhere!)
19. Combinators ( div ~ em + u > * )
When using multiple combinators in the same selector,
some possible matches were being lost
20. Combinators ( div ~ em + u > * )
When using multiple combinators in the same selector,
some possible matches were being lost
Element-rooted querySelectorAll with divisions
21. Combinators ( div ~ em + u > * )
When using multiple combinators in the same selector,
some possible matches were being lost
Element-rooted querySelectorAll with divisions
elem.querySelectorAll(“div, div > em”);
22. Combinators ( div ~ em + u > * )
When using multiple combinators in the same selector,
some possible matches were being lost
Element-rooted querySelectorAll with divisions
elem.querySelectorAll(“div, div > em”);
Unicode validation (improved character encoding per spec)
23. Combinators ( div ~ em + u > * )
When using multiple combinators in the same selector,
some possible matches were being lost
Element-rooted querySelectorAll with divisions
elem.querySelectorAll(“div, div > em”);
Unicode validation (improved character encoding per spec)
Several little edge cases
27. Coming Up
Sizzle may still see major changes before 1.8 release
Explore implementing a compiler to convert a
selector into a function in order to avoid ever looping
over elements more than once.
28. Coming Up
Sizzle may still see major changes before 1.8 release
Explore implementing a compiler to convert a
selector into a function in order to avoid ever looping
over elements more than once.
More css3 selectors (after 1.8)
29. Coming Up
Sizzle may still see major changes before 1.8 release
Explore implementing a compiler to convert a
selector into a function in order to avoid ever looping
over elements more than once.
More css3 selectors (after 1.8)
Provide even more selector validation
30. Coming Up
Sizzle may still see major changes before 1.8 release
Explore implementing a compiler to convert a
selector into a function in order to avoid ever looping
over elements more than once.
More css3 selectors (after 1.8)
Provide even more selector validation
e.g. [attr=”value”] - identifier vs. string
31. Coming Up
Sizzle may still see major changes before 1.8 release
Explore implementing a compiler to convert a
selector into a function in order to avoid ever looping
over elements more than once.
More css3 selectors (after 1.8)
Provide even more selector validation
e.g. [attr=”value”] - identifier vs. string
There are still bugs!
35. Contributing
Submit an issue at http://github.com/jquery/sizzle
Pick an issue and dig in
Discussion in #jquery-dev, longer discussion in the
public Sizzle google group
36. Contributing
Submit an issue at http://github.com/jquery/sizzle
Pick an issue and dig in
Discussion in #jquery-dev, longer discussion in the
public Sizzle google group
Same styleguide, development workflow as jQuery
37. Contributing
Submit an issue at http://github.com/jquery/sizzle
Pick an issue and dig in
Discussion in #jquery-dev, longer discussion in the
public Sizzle google group
Same styleguide, development workflow as jQuery
See jQuery’s readme (http://github.com/jquery/jquery)
38. Contributing (ask me)
timmywil in #jquery or #jquery-dev
@timmywil on the tweeters and the githubs
Welcome, so excited about what we have in store for Sizzle in jQuery 1.8.\nFirst, let’s talk about performance\n
Many things stayed the same\n
To sum up\n- Based on all of the perf tests I’ve done so far, we have excellent codepaths to QSA and matchesSelector\n- So, we’ve covered some performance stuff. Now the next question is, what did we fix?\n
To sum up\n- Based on all of the perf tests I’ve done so far, we have excellent codepaths to QSA and matchesSelector\n- So, we’ve covered some performance stuff. Now the next question is, what did we fix?\n
To sum up\n- Based on all of the perf tests I’ve done so far, we have excellent codepaths to QSA and matchesSelector\n- So, we’ve covered some performance stuff. Now the next question is, what did we fix?\n
To sum up\n- Based on all of the perf tests I’ve done so far, we have excellent codepaths to QSA and matchesSelector\n- So, we’ve covered some performance stuff. Now the next question is, what did we fix?\n
- actually that selector would work if the special characters were escaped and :checkers was a custom pseudo.\n- OK, but there were actually bugs\n
Every browser has bugs in querySelectorAll, even webkit.\n- If you know what I did in the last version of jQuery, you’ll know about my long standing relationship with attributes. IE8’s QSA doesn’t handle boolean attributes very well.\n
Every browser has bugs in querySelectorAll, even webkit.\n- If you know what I did in the last version of jQuery, you’ll know about my long standing relationship with attributes. IE8’s QSA doesn’t handle boolean attributes very well.\n
Every browser has bugs in querySelectorAll, even webkit.\n- If you know what I did in the last version of jQuery, you’ll know about my long standing relationship with attributes. IE8’s QSA doesn’t handle boolean attributes very well.\n
Every browser has bugs in querySelectorAll, even webkit.\n- If you know what I did in the last version of jQuery, you’ll know about my long standing relationship with attributes. IE8’s QSA doesn’t handle boolean attributes very well.\n
Every browser has bugs in querySelectorAll, even webkit.\n- If you know what I did in the last version of jQuery, you’ll know about my long standing relationship with attributes. IE8’s QSA doesn’t handle boolean attributes very well.\n
The only acceptable division in the selectors spec is comma, which made this easy to fix.\nSo you might be wondering what’s next.\n
The only acceptable division in the selectors spec is comma, which made this easy to fix.\nSo you might be wondering what’s next.\n
The only acceptable division in the selectors spec is comma, which made this easy to fix.\nSo you might be wondering what’s next.\n
The only acceptable division in the selectors spec is comma, which made this easy to fix.\nSo you might be wondering what’s next.\n
The only acceptable division in the selectors spec is comma, which made this easy to fix.\nSo you might be wondering what’s next.\n
The only acceptable division in the selectors spec is comma, which made this easy to fix.\nSo you might be wondering what’s next.\n
And I’m here to tell you, you are not prepared.\n
Everything I’ve told you about Sizzle today might change before 1.8 is released. It’s true I rewrote Sizzle. I might just rewrite it again.\n
Everything I’ve told you about Sizzle today might change before 1.8 is released. It’s true I rewrote Sizzle. I might just rewrite it again.\n
Everything I’ve told you about Sizzle today might change before 1.8 is released. It’s true I rewrote Sizzle. I might just rewrite it again.\n
Everything I’ve told you about Sizzle today might change before 1.8 is released. It’s true I rewrote Sizzle. I might just rewrite it again.\n
Everything I’ve told you about Sizzle today might change before 1.8 is released. It’s true I rewrote Sizzle. I might just rewrite it again.\n
Everything I’ve told you about Sizzle today might change before 1.8 is released. It’s true I rewrote Sizzle. I might just rewrite it again.\n
- maybe even with a pull request\n- the issues on the jQuery bugs site will be migrated\n- stale google group, needs more life\n\n
- maybe even with a pull request\n- the issues on the jQuery bugs site will be migrated\n- stale google group, needs more life\n\n
- maybe even with a pull request\n- the issues on the jQuery bugs site will be migrated\n- stale google group, needs more life\n\n
- maybe even with a pull request\n- the issues on the jQuery bugs site will be migrated\n- stale google group, needs more life\n\n
- maybe even with a pull request\n- the issues on the jQuery bugs site will be migrated\n- stale google group, needs more life\n\n