jQuery vs Sizzle vs dojo vs Midori vs YUI vs XUI - selectors test (v62)

Revision 62 of this benchmark created on


Description

Selectors test of 6 useful javascript frameworks

Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/dojo/1.9.3/dojo/dojo.js" data-dojo-config="async:true,parseOnLoad:true,isDebug:false"></script>
<script src="//xui-js.googlecode.com/files/xui-core-1.0.0.js"></script>
<script src="//www.midorijs.com/midori.js"></script>
<script src="//yui.yahooapis.com/2.8.1/build/yahoo/yahoo-min.js"></script>
<script src="//yui.yahooapis.com/2.8.1/build/selector/selector-min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script>var j4 = jQuery.noConflict();</script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11/jquery.min.js"></script>
<script>var j11 = jQuery.noConflict();</script>
<script src="//linkedin.com/lib/sizzle/1.0/sizzle.js"></script>

<div id="test"> 
        <div class="testlink">
                <a href="#" id="linkone" title="test">test link</a>
        </div> 
        <div class="testmenu">
                <ul>
                        <li class="menuitem itemone">
                                <a href="#" title="item 1">menu item 1</a>
                        </li>
                        <li class="menuitem itemtwo">
                                <a href="#" title="item 2">menu item 2</a>
                        </li>
                        <li class="menuitem itemthree">
                                not clickable item 3
                        </li>
                </ul>
        </div>
</div>

Setup

var selectors, query;
    require(['dojo/query'], function(q){
        query = q;
        selectors = ['body', 'div', 'body div', 'div a', 'div > a', 'div[class^=test]', 'div, li, a', '.menuitem', 'li.menuitem', '#linkone', 'div#test', 'a[title*=item]', 'a[title=test]', 'li:nth-child(even)', 'li:nth-child(odd)', 'li:last-child', 'li:first-child'];
    });

Test runner

Ready to run.

Testing in
TestOps/sec
jQuery 1.4 (with Sizzle)
for (var sel in selectors) {
 j4(sel);
}
ready
jQuery 1.11 (newest)
for (var sel in selectors) {
 j11(sel);
}
ready
Sizzle
for (var sel in selectors) {
 Sizzle(sel);
}
ready
Dojo 1.9.3 (newest)
for (var sel in selectors) {
    query(sel);
}
ready
YUI
for (var sel in selectors) {
 YAHOO.util.Selector.query(sel);
}
ready
Midori
for (var sel in selectors) {
 midori.get(sel);
}
ready
XUI
for (var sel in selectors) {
 x$(sel);
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.