附加克隆或动态创建DOM – 什么更好?

我希望从ajax调用返回的数组中生成以下列表。

  • bla
  • ble
  • abc

以下两个都可以工作(我可能需要调整,但它们很接近。一种方法比另一种方法更受欢迎吗?是否有更好的东西?谢谢

 var l=$("#list"); l.html(''); $(data).each(function(){ l.append('
  • '+this.channel+'
  • '); //Or l.append($("#rss-clone").clone(true).removeAttr('id').find('input').val(this.id).attr('checked',(this.selected)?'checked':null).parent().text(this.channel)); },'json');

    //仅限克隆解决方案所需:

      

      另请参阅: jQuery和动态元素与显示css属性

      需要注意的是,动态创建doms会增加客户端的开销,而克隆现有的doms在客户端上很快,但是必须提前渲染和下载它们。

      没有比另一个更好,哪一个更适合你取决于你的项目; 如果您更关心客户端性能而不是每个请求下载一些额外的字节,那么您可以选择克隆方法。

      然而,据我所知,客户端的性能并没有受到任何方法的严重影响,克隆的速度要快一些,但动态创建元素并不是非常缓慢。 除非你创造了100个这样的选择,否则选择可能仅仅归结为品味问题,即对你来说感觉更好。

      但需要注意的是,除非您需要创建许多非常不同的元素,否则克隆是一种更方便的方法,因为如果标记未嵌入到JS代码中,您可以轻松地设置和修改元素。