Every framework runs in his own iFrame, thus no conflicts can happen. Tests are run selector by selector, with an interval to prevent the browser from freeezing.
Tests are run in a neutral environment, no library or framework is included in the main javascript test, to avoid favoritism.
Tests are run against a local copy of this document.
selectors | Dojo 1.4.0 | JQuery 1.4.2 | My Library 2010-01-22 | Prototype 1.6.1 | YUI 3.0 |
---|---|---|---|---|---|
final time (less is better) | 0 | 0 | 0 | 0 | 0 |
* | |||||
div div | |||||
div > div | |||||
div + div | |||||
h2 + div | |||||
div ~ div | |||||
h2 ~ div | |||||
div[class^=dia][class$=log] | |||||
body | |||||
body div | |||||
div | |||||
div div div | |||||
div, div, div | |||||
div, a, span | |||||
.dialog | |||||
div.dialog | |||||
div.scene.dialog | |||||
div .dialog | |||||
div.character, div.dialog | |||||
#speech5 | |||||
div#speech5 | |||||
div #speech5 | |||||
div.scene div.dialog | |||||
div#scene1 div.dialog div | |||||
#scene1 #speech1 | |||||
div[class] | |||||
div[class=dialog] | |||||
div[class^=dia] | |||||
div[class$=log] | |||||
div[class*=sce] | |||||
div[class|=dialog] | |||||
div[class!=madeup] | |||||
div[class~=dialog] | |||||
div[class!=""] | |||||
div[style] | |||||
div:only-child | |||||
div:contains(CELIA) | |||||
div:nth-child(even) | |||||
div:nth-child(2n) | |||||
div:nth-child(odd) | |||||
div:nth-child(2n+1) | |||||
div:nth-child(2n+0) | |||||
div:nth-child(n+0) | |||||
div:nth-child(4n+3) | |||||
div:nth-child(2n-1) | |||||
div:nth-child(0n+2) | |||||
div:nth-child(-3n+2) | |||||
div:nth-child(-1n+2) | |||||
div:nth-child(-n+2) | |||||
div:nth-child(5) | |||||
div:last-child | |||||
div:nth-last-child(3) | |||||
div:nth-last-child(4n+3) | |||||
div:nth-last-child(2n-1) | |||||
div:nth-last-child(-3n+2) | |||||
div:nth-last-child(-1n+2) | |||||
div:first-child | |||||
:first-child | |||||
td[colspan!=1] | |||||
td[rowspan!=1] | |||||
td[colspan!="1"] | |||||
td[colspan!=\'1\'] | |||||
td[colspan=\'2\'] | |||||
td[colspan!="0"] | |||||
meta[http-equiv] | |||||
input:checked | |||||
*:checked | |||||
input:disabled | |||||
input:enabled | |||||
input[value] | |||||
option[selected] | |||||
label[for] | |||||
div:empty | |||||
td[title=\'test1" # . > ~ + test2[1]\'] | |||||
td[title="test1\' # . > ~ + test2[1]"] | |||||
#dave, input#dave | |||||
div, div div | |||||
span:lang(en) | |||||
span:lang(en-us) | |||||
span:lang(en-gb) | |||||
:root |
the faster | the slower | exception thrown or zero elements found | different returned elements |
---|---|---|---|