• <tbody id="9je1r"></tbody><tbody id="9je1r"><acronym id="9je1r"><rp id="9je1r"></rp></acronym></tbody>
      • <acronym id="9je1r"><acronym id="9je1r"><rp id="9je1r"></rp></acronym></acronym>

        亚洲无码Aⅴ,视频1页精品,欧美系列一区二区,曰韩色999

        什么是重繪和重排,它們的區(qū)別是什么?

        2020/10/26 9:02:54   閱讀:5072    發(fā)布者:5072


        重繪:當(dāng)頁面元素樣式的改變不影響布局時,瀏覽器重新對元素進(jìn)行更新的過程叫做重繪。

        重排:當(dāng)頁面元素的尺寸、結(jié)構(gòu)、或某些屬性發(fā)生改變時,瀏覽器重新渲染部分或全部文檔的過程叫做重排也叫做回流。


        一個頁面由兩部分組成:

        DOM:描述該頁面的結(jié)構(gòu)

        render:描述 DOM 節(jié)點 (nodes) 在頁面上如何呈現(xiàn)


        當(dāng) DOM 元素的屬性發(fā)生變化 (如 color) 時, 瀏覽器會通知 render 重新描繪相應(yīng)的元素, 此過程稱為 repaint。


        如果該次變化涉及元素布局 (如 width), 瀏覽器則拋棄原有屬性, 重新計算并把結(jié)果傳遞給 render 以重新描繪頁面元素, 此過程稱為 reflow。


        這兩個過程是很耗費瀏覽器性能的, 從 IE 系列和 Chrome 渲染頁面速度上的差距即可看出渲染引擎計算對應(yīng)值和呈現(xiàn)并不一定高效, 而每次對元素的操作都會發(fā)生 repaints 或 reflow, 因此編寫 DOM 交互時如果不注意就會導(dǎo)致頁面性能低下

        頁面渲染的過程如下:

        1.解析HTML代碼并生成一個 DOM 樹。


        2.解析CSS文件,順序為:瀏覽器默認(rèn)樣式->自定義樣式->頁面內(nèi)的樣式。


        3.生成一個渲染樹(render tree)。這個渲染樹和DOM樹的不同之處在于,它是受樣式影響的。它不包括那些不可見的節(jié)點。


        4.當(dāng)渲染樹生成之后,瀏覽器就會在屏幕上“畫”出所有渲染樹中的節(jié)點。


        不管頁面發(fā)生了重繪還是重排,它們都會影響性能(最可怕的是重排 ,應(yīng)盡量避免)

        下列情況會發(fā)生重排

        頁面初始渲染

        添加/刪除可見DOM元素

        改變元素位置

        改變元素尺寸(寬、高、內(nèi)外邊距、邊框等)

        改變元素內(nèi)容(文本或圖片等)

        改變窗口尺寸


        如何減少重排和重繪(提高性能)


        由于回流和重繪會帶來很大的性能開銷,所以在開發(fā)中我們要盡量避免或減少回流和重繪的次數(shù)來提高性能

        1.      避免頻繁讀取會引發(fā)回流/重繪的屬性,如果確實需要多次使用,就用一個變量緩存起來。

        2.     對具有復(fù)雜動畫的元素使用絕對定位,使其脫離文檔流,否則會引起父元素及后續(xù)元素頻繁回流。

        3.     要避免頻繁的去操作DOM,可以通過創(chuàng)建documentFragment,完成所有所有DOM操作后,最后再把它添加到文檔中。

        4.     避免頻繁操作樣式,最好一次性重寫style屬性,或者將樣式列表定義為class并一次性更改class屬性。



        1.分離讀寫操作


        var curLeft=div.offsetLeft;


        var curTop=div.offsetTop;


        div.style.left=curLeft+1+’px’;


        div.style.top=curTop+1+’px’;


        2.樣式集中改變 ,可以添加一個類,樣式都在類中改變

        3.可以使用absolute脫離文檔流。

        4.使用 display:none ,不使用 visibility,也不要改變 它的 z-index

        5.能用css3實現(xiàn)的就用css3實現(xiàn)。

        區(qū)別:

        1. 重繪的性能開銷較低,重排的性能開銷較高;

        2. 回流(重排)一定會觸發(fā)重繪,而重繪不一定會回流(重排)




        亚洲无码Aⅴ,视频1页精品,欧美系列一区二区,曰韩色999
            • <tbody id="9je1r"></tbody><tbody id="9je1r"><acronym id="9je1r"><rp id="9je1r"></rp></acronym></tbody>
            • <acronym id="9je1r"><acronym id="9je1r"><rp id="9je1r"></rp></acronym></acronym>
              灵丘县| 淮安市| 甘孜县| 盈江县| 辽宁省| 安多县| 萝北县| 嘉黎县| 和林格尔县| 花垣县| 贡觉县| 工布江达县| 泸水县| 周至县| 德令哈市| 定日县| 许昌市| 类乌齐县| 建昌县| 余庆县| 民勤县| 克拉玛依市| 镇安县| 海安县| 泌阳县| 石门县| 报价| 宁夏| 大埔县| 盘锦市| 辽源市| 阿巴嘎旗| 通州区| 崇左市| 民勤县| 盱眙县| 留坝县| 陇南市| 乌鲁木齐县| 东乌珠穆沁旗| 博客|