最小化重繪和重排之批量修改DOM

2021-08-02 16:03:09 字數 641 閱讀 9575

批量修改dom的出發點是減少重繪和重排次數,基本思路是當需要對dom進行多種修改操作時,首先讓dom脫離文件流;然後讓其進行批量修改,修改的過程不會觸發瀏覽器重排和重繪;最後將修改後的dom重新加入文件中。這樣只會在dom脫離和重新加入文件流時觸發重排和重繪操作兩次,對於批量修改這樣的操作有效降低重排和重繪次數。

dom脫離文件流的方法

**示例

//方法一: 隱藏並修改後顯示

var ele = document.getelementbyid('mylist');

ele.style.display = "none";

ele.style.display = "block";

//方法二:clone

var old = document.getelementbyid('mylist');

varclone = old.clonenode(true);

old.parentnode.replacechild(clone, old);

//方法三

var fragment = document.createdocumentfragment();

references

javascript效能提公升 最小化重繪和重排

authored by 李家優 頁面的重繪和重排會產生計算消耗,為了提公升效能,我們應該盡可能的降低頁面的重繪和重排。用展開 摺疊的方式來顯示和隱藏部分頁面是一種常見的互動模式。它通常包括展開區域的幾何動畫,並將頁面其他部分推向下方。一般來說,重排只影響渲染樹中的一小部分,但也可能影響很大的部分,甚...

重繪和重排

重繪是乙個元素外觀的改變所觸發的瀏覽器行為,例如改變visibility outline 背景色等屬性。瀏覽器會根據元素的新屬性重新繪製,使元素呈現新的外觀。重繪不會帶來重新布局,並不一定伴隨重排。重排是更明顯的一種改變,可以理解為渲染樹需要重新計算 儘量減少重排次數和縮小重排的影響範圍 1.dom...

重排和重繪

當dom的變化影響了元素的幾何屬性 寬或高 瀏覽器需要重新計算元素的幾何屬性,同時其他元素的幾何屬性和位置也會受到影響。瀏覽器會使渲染樹中受到影響的部分失效,並重新構造渲染樹,這個過程稱為重排。完成重排後,瀏覽器會重新繪製受到影響的部分到螢幕,這個過程稱為重繪。由於瀏覽器的流布局,對渲染樹的計算通常...