2012-02-16 20 views
2

我最近觀看尼古拉斯Zakas的視頻談論高服務表現的腳本。這一個是關於迴流和重漆。他說,這是不好的不斷迴流這是移動和改變佈局,改變尺寸等「異地」複製到做操作

我回答一個問題關於Transfer overflow from one div to another - 我的所作所爲向「溢出」溢出的內容到其他分區爲:

  1. 測量內部和外部容器的高度(目前,我使用jQuery.height())
  2. 檢查,如果內比外
  3. 更大如果小於(沒有溢出),端腳本
  4. 如果更大(溢出),彈出t中的最後一個字符他內膽和預先準備下一格
  5. 把文本帶回內容器(導致迴流 - 重新計算的高度)
  6. 回到步驟1

的問題就是我刪除和添加字符,並測量每個「從容器中彈出的字符」溢出的容器的高度。它也是每次迭代重新渲染 - 這使得它有時超級慢。

是有辦法有DOM操作,檢查高度等的JS副本?我正在尋找的就像是一個頁面的克隆。我聽說過DOM片段,但它只是一個節點的容器,然後將它們放入DOM中。

+0

您可以嘗試使用'.cloneNode()',但我不確定在從文檔中刪除節點時是否保留了維度 – Raynos 2012-02-16 21:13:10

回答

1

當考慮創建DOM的副本,下面的方法可以是有用的:

這些方法對DOM結構非常有用,但不幸的是,它們不返回維的有用值。

的元件必須被渲染。這可以通過創建元素來完成,並在其中插入文檔(節點)。前面提到的方法可以用於這一目的:創建(的一部分)上的原稿的有效拷貝,然後將文檔放入iframe中。

也可以在<head>中插入<base>元素,以便正確解析URL和圖像。

+0

我發現它適用於構建元素,綁定事件並存儲到高速緩存供以後使用:) – Joseph 2012-02-19 02:25:22