什么's是在IE8+中添加元素的最有效方法
what's the most efficient way to append elements in IE8+?
我有一个复杂的网页,其中有很多元素被严重操纵。虽然这在Chrome/FF上运行得很顺利,但IE(8+9)在这个页面上似乎经常冻结。
代码的一个特定部分在IE上的运行速度比在其他浏览器上慢得令人难以置信,那就是我在页面上添加新元素的地方:具体来说,我有50个(嵌套的)元素,我将其添加到documentFragment中,然后最终将documentFraction添加到实际文档中的某个元素中。最后一次追加在Chrome/FF上发生得很快,但在IE中可能需要几秒钟以上
我尝试使用html()/innerHTML,这似乎只会让事情变得更糟(它们可能比逐个附加()元素要好,但documentFragment似乎确实有帮助)。问题是,我该怎么办?有没有更有效的方法可以在IE中插入这些元素?我是不是错过了一些可能导致它们插入得如此缓慢的东西?
谢谢。
===编辑===
代码示例(不是1:1,但这是我通常所指的):
function insertContent(elementsCollection)
{
var fragment = document.createDocumentFragment();
for (var i=0; i < elementsCollection.length; i++)
{
fragment.appendChild($(collection[i])[0]);
}
$("#parentDiv").append(fragment);
}
我一直使用(并推荐)
rootNode.replaceChild(newElement, oldElement)
我没有遇到像你在IE/FF/Chrome/Safari中提到的那样的问题。我单独准备新的文档片段,并一次性用新的节点替换现有的节点,而不是一次构建活动的DOM树节点。
相关文章:
- 如何将html元素添加到tampermonkey中
- 如何将html元素添加为生成的内容
- 如何向Selectize元素添加渲染和创建方法
- 向html选择元素添加选项
- 在d3中向DOM元素添加了图像,但现在它赢得了't过渡
- 如何将新的键/值对元素添加到现有数组
- 使用docment.createElement向元素添加选项
- ng重复向一个元素添加条件类
- 为li元素添加标题
- 向ckeditor中的多个元素添加内联样式
- Javascript 向影子根中的自定义元素添加函数
- 将伪元素添加到<文本区域>
- 如果类只包含一个特定数字,则向元素添加类
- DOM:将空元素添加到 DOM 和页面重排
- 是否有 jQuery 事件用于何时将元素添加到文档中
- 通过 ajax 使用自定义滚动条向元素添加内容
- 是否可以用D3将svg元素添加到开放层映射中
- 如何将元素添加到动态数组并排除现有元素
- 在AngularJS中将元素添加到作用域时,如何在所有设备上播放声音
- 将图像元素添加到<a>标签