RightJS vs jQuery Mano A Mano (clean test comparison)
st-on-it.blogspot.com
st-on-it.blogspot.com
But don't count it if you don't like the idea, it's just one test among many others and not the slowest one. So it won't change a lot.
But as for the second part, I don't see any difference in coding efforts between jQuery and RightJS, if you really read the tests on github, you will see the size of code is about the same, RightJS is even compacter in many places.
I'd also like to note that it's quite nice that jQuery does not mess with classes directly, or with prototype. Although it certainly is cool to add additional methods there, javascript doesn't have a great way to namespace stuff added to global classes and makes it a pain when you mix & match other JS libraries into your project.
As for the safe mode, first of all it's not such a big problem as people usually think and actually provides more help than issues, and secondly RightJS will end up with a safe mode plugin sooner or later.
RightJS is extra careful with native classes extensions, it adds only standard methods and doesn't extend the Object.prototype at all. In many cases it's just adds missing methods in old browsers and that's it. And we always keep the original functionality intact.
We're trying to balance between the Prototype extensions hell and jQuery agnosticism. Things like String#endsWith, Array#compact is kinda standard features, they are extremely handy in everyday work and most of soberminded programmers won't hack those methods if they create some plugin that other people might use.
As the matter of fact most of jQuery plugins don't extend prototype too.
So it is a problem, but I believe it's negotiable and there might be a non-polar solution.
:)
So that you have a choice. If you disagree, then you don't count this line, if you do agree then you count it.
Either way RightJS comes faster
> Instead let's test selector speeds etc.
Actually this is what's pointless, both of the frameworks do it by using native features of the modern browsers and results will about the same for any framework.
> i would use jQuery's live() and then binding takes almost no time for any number of elements.
Are you sure about that?
Yes simple selectors are pointless. How about '.Class .child:visible:not(.test):eq(1)'?
It's kinda different story and rather a hack than a standard approach. And it's not always a cace, because it will handle the callbacks slower than a direct bind and therefore not always appropriate.
In any case it's not what the test is intended to do. We test standard operations, that's all. Testing live with bind is like comparing apples with oranges.
> How about '.Class .child:visible:not(.test):eq(1)'?
Do you mean non-standard css-selectors? There is nothing to test, rightjs simply doesn't support them
With rightjs you always can do it like that
$$('.class').filter('visible');
You can do that with jQuery as well and that's an ineresting performance comparison in itself. E.g. $('.class:visible:not(:eq(1))') vs $('.class').filter(':visible').not(':eq(1)'). I suspect it heavily depends on the size of the DOM tree and the number of elements.
You should choose already what do you stand for.
But anyway, if you want to test it go ahead, you know where the code is. I suppose jQuery handles virtual selectors via JavaScript and therefore there will be no serious difference in performance. I even suspect that a single additional function in the filter method in RightJS will still work faster than several internal selectors in jQuery.
Insert element bottom 48 131 169
Insert element on top 48 134 167
Don't know about the release notes, my test says 1.4 is slower than 1.3.2
It's not RightJS only, Dojo and YUI win in those tests too.
Generally speaking PureDom is still faster than RightJS. It has to be.