[英]“Offsite” copy of the DOM to do manipulations
我最近观看了Nicholas Zakas的视频,内容涉及高性能脚本。 这是关于重排和重绘的内容。 他说,不断回焊是很不好的,因为不断回焊会改变布局,更改尺寸等。
我回答了一个从一个div转移到另一个div的问题-我为将溢出的内容“溢出” 到另一个div所做的事情是:
问题是我要删除并附加字符,并测量从容器中弹出的每个“字符”溢出的容器的高度。 它也会在每次迭代时重新渲染-有时会变得非常慢。
有没有一种方法可以处理DOM的JS副本,检查高度等? 我正在寻找的东西就像页面的克隆。 我听说过DOM片段,但是在将它们放入DOM之前,它只是节点的容器。
在考虑创建DOM副本时,以下方法可能会有用:
document.createDocumentFragment()
-创建一个普通的“节点存储”对象。 document.implementation.createDocument
和DOMParser-创建和处理完整文档。 cloneNode
复制节点(使用appendChild
和replaceChild
DOM操作)。 这些方法对于DOM结构非常有用,但不幸的是,它们不返回尺寸的有用值。
元素必须渲染。 这可以通过创建<iframe>
元素并将文档(节点)插入其中来完成。 前面提到的方法可用于此目的:创建文档(部分)的有效副本,并将文档插入iframe。
在<head>
还插入一个<base>
元素可能是有用的,以便正确解析URL和图像。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.