繁体   English   中英

DOM的“异地”副本以进行操作

[英]“Offsite” copy of the DOM to do manipulations

我最近观看了Nicholas Zakas的视频,内容涉及高性能脚本。 这是关于重排和重绘的内容。 他说,不断回焊是很不好的,因为不断回焊会改变布局,更改尺寸等。

我回答了一个从一个div转移到另一个div的问题-我为将溢出的内容“溢出” 到另一个div所做的事情是:

  1. 测量内部和外部容器的高度(当前,我使用jQuery.height())
  2. 检查内部是否大于外部
  3. 如果小于(没有溢出),则结束脚本
  4. 如果更大(溢出),请在内部容器中弹出最后一个字符,然后添加到下一个div
  5. 将文本放回内部容器中(导致重排-重新计算高度)
  6. 回到步骤1

问题是我要删除并附加字符,并测量从容器中弹出的每个“字符”溢出的容器的高度。 它也会在每次迭代时重新渲染-有时会变得非常慢。

有没有一种方法可以处理DOM的JS副本,检查高度等? 我正在寻找的东西就像页面的克隆。 我听说过DOM片段,但是在将它们放入DOM之前,它只是节点的容器。

在考虑创建DOM副本时,以下方法可能会有用:

这些方法对于DOM结构非常有用,但不幸的是,它们不返回尺寸的有用值。

元素必须渲染。 这可以通过创建<iframe>元素并将文档(节点)插入其中来完成。 前面提到的方法可用于此目的:创建文档(部分)的有效副本,并将文档插入iframe。

<head>还插入一个<base>元素可能是有用的,以便正确解析URL和图像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM