我想知道使用缓存选择器和使用链式选择器之间是否存在性能差异?
如果我理解正确链接有效,因为每个函数都返回jquery对象,这与缓存选择器中包含的内容完全相同。因此,下面两个例子中的性能没有区别吗?
<小时/> 缓存选择器
$(function(){
$.on('click', '.disabled', function(){
$toggle = $(this);
$toggle.attr('title', 'Object Enabled');
$toggle.toggleClass('disabled enabled');
$toggle.html('Enabled');
});
});
<小时/> 链式选择器
$(function(){
$.on('click', '.disabled', function(){
$(this)
.attr('title', 'Object Enabled')
.toggleClass('disabled enabled')
.html('Enabled');
});
});
答案 0 :(得分:6)
你可以在这里看到
http://jsperf.com/jquery-chaining
差异可以忽略不计。
链接的
$('#theDiv').addClass('test').removeClass('test');
59,874 Operations / Second
单独调用(缓存)
var d = $('#theDiv');
d.addClass('test');
d.removeClass('test');
62,021 Operations / Second
答案 1 :(得分:5)
如果存在差异,则最小,这取决于正在执行的浏览器。
“我们应该忘记效率低,大约97%的时间说:过早优化是所有邪恶的根源”
答案 2 :(得分:0)