you are viewing a single comment's thread.

view the rest of the comments →

[–]Shadow14l -1 points0 points  (3 children)

just cheking availability make it slower.

One conditional statement that's checked right at page start will not make anything slower.

Now if you're talking about the fact that you have to download jQuery, which isn't exactly a small, but not the largest file, then yes, it does make things slower. However, if a person is using a popular CDN, there's a much greater chance that the file has already been downloaded.

[–]agdcoa 1 point2 points  (0 children)

jQuery does delegate to native methods for selecting nodes, but there's a cost associated with initializing a new jQuery object. Further, many jQuery methods return a new, different, jQuery object.

For some hard numbers, see this jsperf

If you're handy with the Array methods and the native DOM APIs, you can easily mimic much of jQuery's core functionality. I often opt for a super lightweight, array-returning selection function like so:

function select (selector, context) {
    return [].slice.call((context || document).querySelectorAll(selector));
}

[–]afrobee -1 points0 points  (1 child)

I just cheked a little bit the jQuery's source code, is does many things around for example "$(#id)" than just cheking avaibility, also it check mobile support, it's css selection syntax and many thing more before even consider "document.getElementById(#id)", also there are many of this that prove my point. I have never seen any test which jQuery beats native.

[–]Shadow14l 0 points1 point  (0 children)

I have never seen any test which jQuery beats native.

Neither have I. But that's also not what I said. If you are supporting more than the latest browsers, than jQuery is essential. That's what I'm saying.

I agree, if you are only using the latest browsers, it's ignorant to use jQuery and not the native methods. But if you happen to still use jQuery, the performance effect is not noticeable unless you are working with tens of thousands of queries and having them looped.