Tim*_*hle 22 optimization jquery
我想知道用jQuery更改多个属性是否更有效/更快,或者只是一次性更改所有html.这是我目前正在使用的代码.
// shows the table and changes the image to up
showTable = function(tableId){
    $('#img' + tableId).attr("src", images["up"]).attr("alt", "Hide Table").attr("title", "Hide Table");
    $('#' + tableId).fadeIn(250);
}
或者这会更快?
// shows the table and changes the image to up
showTable = function(tableId){
    $('#img' + tableId).replaceWith('some html');
    $('#' + tableId).fadeIn(250);
}
yan*_*kun 48
$('#greatphoto').attr({
  alt: 'Beijing Brush Seller',
  title: 'photo by Kelly Clark'
});
从jQuery文档中获取的示例.
鉴于您需要花费四分之一秒来淡化结果并且这不是一个紧凑的循环,您不会注意到两者之间的任何性能差异.正如yan.kun所指出的那样,你可以通过使用多集(map)版本来使代码更简洁attr,但是有三个属性不是紧密循环,它不会产生速度差异.(如果是这样,我会避免调用attr完全和使用元素的体现自身的属性- src,alt和title无一不体现.)
话虽如此,还有其他原因需要更新元素而不是替换元素.例如,如果您有任何处理程序附加到元素,如果您更新元素的属性,处理程序保持连接; 如果更换元素,则不附加处理程序(因为它们附加到旧的处理程序).更换元素也会导致重排,这可能很重要(或不重要),具体取决于您的DOM结构.
| 归档时间: | 
 | 
| 查看次数: | 22534 次 | 
| 最近记录: |