YUI v3.7.3 vs. jQuery v1.8.2 vs Dojo 1.8.1 DOM queries (v42)

Revision 42 of this benchmark created on


Description

Fixed issues with the tests which causes incorrect results: * All but the native selector were not actually selecting anything since they were just querying the index. * dojo test was returning the query object rather then actually executing the callback block

Preparation HTML

<script src="http://yui.yahooapis.com/3.7.3/build/yui/yui-min.js">
</script>
<script src="http://code.jquery.com/jquery-1.8.2.min.js">
</script>
 <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.8.1/dojo/dojo.js"></script>
<script>
YUI().use('node', function(Y) {
  yui = Y;
});

require(['dojo/query!css3'], function(query) {
  dojoQuery = query;
});
</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 = ['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 v1.8.2
for (var sel in selectors) {
  $(selectors[sel]).length;
}
ready
YUI v3.7.3
for (var sel in selectors) {
  yui.all(selectors[sel]).length;
}
 
ready
Dojo v1.8.1
for (var sel in selectors) {
  dojoQuery(selectors[sel]).length
}
 
ready
querySelector
for (var sel in selectors) {
   document.querySelectorAll(selectors[sel]).length;
};
ready

Revisions

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