我想为多个元素设置这么多属性。与jquery相比,Javascript总能提供更好的性能。
我想知道在通过jquery和javascript建立多个属性时哪一个能提供更好的性能。
Jquery多个属性设置器:
$(element).attr({'id': 'id1', 'index':1, 'value':10,'check':'checked'});
使用javascript setAttribute:
element.setAttribute('id','id1');
element.setAttribute('index','1');
..................................
当我使用javascript时,我需要写多行。否则需要为此创建自定义功能。
任何人都能解释哪一个能提供更好的表现吗?为什么?
谢谢,
希瓦
答案 0 :(得分:2)
计算机的成本远低于程序员。
让我们说:
使用纯js将使代码运行1ms,程序员运行3个小时。
使用jQuery将使代码运行2ms,程序员运行1分钟
查看利润?
答案 1 :(得分:2)
这是一个测试属性设置的jsperf。我不确定它是否涵盖了你的情况,但正如其他人所说的那样 - 纯粹的javascript比使用库要快得多。 (我甚至不确定jsperf是否有效。我的意思是它测试你需要的东西。)
http://jsperf.com/aaa-setting-attribute
jQuery版本比纯javascript版本慢66%。
答案 2 :(得分:1)
您应该设置属性,而不是属性,因为它们在浏览器中更加一致,并且对DOM元素具有更一致的影响(有时设置属性会影响属性,有时则不会影响属性)。设置属性几乎总是具有所需的效果(例如,设置复选框以进行检查),并不总是设置相关属性。
如果要在元素上设置多个属性,也可以使用小函数:
function setProperties(element, props) {
for (var prop in props) {
if (props.hasOwnProperty(prop)) {
element[prop] = props[prop];
}
}
}
我看不出它会比jQuery慢。
答案 3 :(得分:0)