是否在内部使用jquery clone()用户文档片段?

时间:2010-10-09 02:13:27

标签: javascript jquery documentfragment

我动态地将元素插入到dom中,并使用以下步骤:(jquery)初始dom结构如下:

<div parent div>
 </div>
 <div child div template>
</div>
  • 使用jquery .clone()
  • 克隆父div
  • 克隆子div并进行操作
  • 附加到克隆的父母
  • 为所有子数据执行此操作
  • (parentdiv original).replaceAll(clonedparent)

基本上我想以某种方式克隆父div,以便它可以作为a 文档片段,以便在dom上获得追加并获得性能。

jQuery clone()会像documentfragment一样表现出性能优势吗? 或者有更好的方法吗?我不想将每个子元素构造为HTML字符串,因为它们的结构非常复杂。

1 个答案:

答案 0 :(得分:2)

jQuery clone()执行一个简单的DOM cloneNode(),除了在IE上,如果你这样做,它会不恰当地复制事件监听器。为了解决这个问题,在IE浏览器上,jQuery做了一件非常可怕的事情,你真的不想知道。哪个不快。

replaceAll()也不快。它必须从DOM中删除每个子节点(这在jQuery中特别慢,因为它需要在从DOM中删除某些内容时检查data)并逐个添加新节点。

我真的没有看到克隆给你带来什么。只需直接对孩子进行操作即可。如果你有很多操作要做,并且你正在触发使它变慢的重新布局,你可以暂时隐藏父文件或detach文件,在你完成后重新附加它。 / p>