- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在动态地将元素插入到 dom 中,为此我使用以下步骤:(jquery) 初始 dom 结构如下:
<div parent div>
</div>
<div child div template>
</div>
(parentdiv 原始).replaceAll(clonedparent)
基本上我想以某种方式克隆父 div,以便它可以作为documentfragment,这样在 dom 上就不会发生附加操作并获得性能。
jQuery clone()
会通过像 documentfragment 一样表现来提供性能优势吗?或者有更好的方法来做到这一点吗?我不想将每个子元素构造为 HTML 字符串,因为它们的结构非常复杂。
最佳答案
jQuery clone()
执行普通 DOM cloneNode()
,但在 IE 上除外,如果您这样做,它会不适本地复制事件监听器。为了解决这个问题,jQuery 在 IE 上做了一些你不想知道的极其可怕的事情。这可不快。
replaceAll()
也不快。它必须从 DOM 中删除每个子节点(这在 jQuery 中特别慢,因为从 DOM 中删除某些内容时需要检查数据)并一一添加新节点。
我真的不明白克隆到底是什么让你来到这里的。只需直接对 child 进行操作即可。如果您有很多操作要做,并且触发了重新布局,导致速度变慢,您可以暂时隐藏父级或将其从文档中分离出来,然后在需要时重新附加它。完成了。
关于javascript - jquery clone() 内部是否使用 documentfragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3895421/
这是我注意到的一个奇怪的行为。我没有重置文档,而是在附加文档后立即使用它,并且它包含的先前元素不存在。 我应该这样清除它吗? frag_inner = ''; 是否有我不知道的副作用? frag_ou
我想使用 DocumentFragment 和 querySelector 来制作和修改 DocumentFragment。我正在使用来自 Inserting arbitrary HTML into
在我的测试中,我使用 jQuery 创建了一些文档片段,例如: el = $("hello world") 然后我对该片段进行了一些操作,并想检测元素是否会改变其大小(特别是想检测是否有换行符)。有什
我看过一篇关于内存泄漏的文章,其中垃圾收集器逻辑被总结为: The garbage collector builds a list of "roots". Roots usually are glob
我认为 DocumentFragment 的全部意义在于能够在准备好之前不接触 DOM 就构建内容。 鉴于 DocumentFragment 不支持 innerHTML,它可能有点乏味。另一方面,一旦
所以我基本上只是尝试将元素从一个节点移动到另一个节点。我创建了一个片段,然后将我的子元素附加到它。 const fragment = document.createDocumentFragment()
在新选项卡或窗口中打开文档片段有哪些选项。哪些浏览器最兼容,哪些对用户最友好? var frag = document.createDocumentFragment(); var div = $(""
今天我偶然发现了 createDocumentFragment。我想知道是否支持 DocumentFragment,以及如何在不同的浏览器上,特别是 IE 系列。 有人知道这个问题吗? 最佳答案 是的
var oFra = document.createDocumentFragment(); // oFra.[add elements]; document.createElement("div").
第一个日志返回完整的 li元素,而第二个返回空 DocumentFragment .为什么?我在任何文档中都找不到有关该行为的任何信息。 var main = document.getElementB
我创建了一组 9x9 的按钮,但它们位于左上角,我想将它们全部对齐在中心。我尝试过使用 来对齐所有内容,但它不起作用,页面上什么也没有显示。 var docFrag = document.cr
我正在尝试执行这段代码,但得到的结果是 first third , 完全忽略中间 second节点。谁能告诉我问题出在哪里? const html = 'first second third '; c
使用 DocumentFramgment允许我们将 DOM 元素相互附加而不会导致 browser reflow (即使用离线 DOM 树)。很多库,例如 jQuery使用文档片段来提高性能。 文档片
function JGallery() { this.elements = this._init(); this.overlay = this.elements.overlay;
我正在动态地将元素插入到 dom 中,为此我使用以下步骤:(jquery) 初始 dom 结构如下: 使用 jquery .clone() 克隆父 div 克隆子 div 并进行操作 附加
我有一个使用 Google map 实用程序库组合的网站; markerWithLabel 和markerClusterPlus。 markerWithLabel 操作 DOM 将标签放在 map 上
我的基于 React 的应用程序需要呈现动态表单。表单定义存储为 JSON 文档,我已经有一个 JS 库可以解析定义并返回一个 DocumentFragment。该库也在其他非 React 应用程序中
我正在关注 the instructions given on MDN使用 .示例中给出的略有不同,我的代码是:
只是出于兴趣,有人知道这个问题的答案吗? 最佳答案 来自 MozDev ( https://developer.mozilla.org/en-US/docs/DOM/document.createDo
如何遍历 DocumentFragment childNodes?我试过执行以下操作: console.log(result.childNodes); console.log(result.child
我是一名优秀的程序员,十分优秀!