在jquery中缓存vs链式选择器?

Hai*_*ood 3 performance jquery caching jquery-selectors chaining

我想知道使用缓存选择器和使用链式选择器之间是否存在性能差异?

如果我正确理解链接,因为每个函数都返回jquery对象,这与缓存选择器中包含的内容完全相同.因此,下面两个例子中的性能没有区别吗?


缓存选择器

$(function(){

    $.on('click', '.disabled', function(){
        $toggle = $(this);
        $toggle.attr('title', 'Object Enabled');
        $toggle.toggleClass('disabled enabled');
        $toggle.html('Enabled');
    });
});
Run Code Online (Sandbox Code Playgroud)


链式选择器

$(function(){

    $.on('click', '.disabled', function(){
        $(this)
            .attr('title', 'Object Enabled')
            .toggleClass('disabled enabled')
            .html('Enabled');
    });
});
Run Code Online (Sandbox Code Playgroud)

Ohg*_*why 6

你可以在这里看到

http://jsperf.com/jquery-chaining

差别可以忽略不计.

链式

$('#theDiv').addClass('test').removeClass('test');

59,874 Operations / Second
Run Code Online (Sandbox Code Playgroud)

单独调用(缓存)

var d = $('#theDiv');
d.addClass('test');
d.removeClass('test');

62,021 Operations / Second
Run Code Online (Sandbox Code Playgroud)


gdo*_*ica 5

如果有任何差异,它将具有最小差异,并且它取决于正在执行的浏览器.

"我们应该忘记小的效率,大约97%的时间说:过早的优化是所有邪恶的根源 "