webkit瀏覽器渲染影響因素分析

來源:互聯網
上載者:User

標籤:orm   script   rom   使用動畫   ima   操作   http   osi   陰影   

Chrome上各個渲染部分的實際含義:

Parse Html:

發送一個http請求,擷取請求的內容,然後解析html的過程。

Recalculate Style:

重新計算樣式,它計算的是Style,和Layout做的事情完全不同。Layout計算的一個元素絕對的位置和尺寸,或者說是“Compute Layout”。

Recalculate被觸發的時候做的事情就是處理JavaScript給元素設定的樣式而已。Recalculate Style會計算出Render 樹(渲染樹),然後從根節點開始進行頁面渲染,將CSS附加到DOM上的過程。

任何企圖改變元素樣式的操作都會觸發Recalculate。同Layout一樣,它也是在JavaScript執行完成後才觸發的。

Layout:

計算頁面上的布局,即元素在文檔中的位置及大小。如上面所說,Layout計算的是布局位置資訊。任何有可能改變元素位置或大小的樣式都會觸發這個Layout事件,如width、height

Rasterizer:

光柵化,一般的安卓手機都會進行光柵化,光柵主要是針對圖形的一個柵格化過程。低端手機在這部分耗時還蠻多的。

Paint:

頁面上顯示東西有任何變動都會觸發Paint?0?2。包括拖動捲軸、滑鼠選中文字,等這些完全不改變樣式,只改變顯示結果的動作都會觸發Paint。

Paint的工作就是把文檔中使用者可見的那一部分展現給使用者。Paint是把Layout和Recalculate的計算的結果直接在瀏覽器表單上繪製出來,它並不實現具體的元素計算。

Image Decode:

圖片解碼,將圖片解析到瀏覽器上顯示的過程。

Image Resize:

圖片的大小設定,圖片載入解析後,若發現圖片大小並不是實際的大小(CSS改變了寬高),則需要Resize。Resize越大,耗時越久,所以盡量以圖片的原始大小輸出。

Composite Layers:

最後合并圖層,輸出頁面到螢幕。瀏覽器在渲染過程中會將一些含義特殊樣式的DOM結構繪製於其他圖層,有點類似於Photoshop的圖層概念。一張圖片在Photoshop是由多個圖層組合而成,而瀏覽器最終顯示的頁面實際也是有多個圖層構成的。

有哪些因素會導致建立圖層:

1、進行3D或者透視變換的CSS屬性

2、使用硬體加速視頻解碼的<video>元素

3、具有3D(WebGL)上下文或者硬體加速的2D內容相關的<canvas>元素

4、組合型外掛程式(即Flash)

5、具有有CSS透明度動畫或者使用動畫式Webkit變換的元素

6、具有硬體加速的CSS濾鏡的元素

在CSS裡面,不同的屬性會觸發不同的layout或者paint,所以通過JS改變css的屬性時,應該考慮到這些方面。如:

css:

如何最佳化渲染時間

1、為了確保頁面的流程,必須保證60fps內不發生2次渲染樹更新。?0?2如,16ms內只發生如下幾個操作則是正常及正確的?0?2:

2、頁面滾動時,需要避免不必要的渲染及長時間渲染。

1)position:fixed

fixed定位在滾動時會不停的進行渲染,特別是如果是頁面頂部有個fiexd,頁面底部有個類似返回頂部的fixed,則在滾動時會整個頁面進行渲染,效率非常低。可以加transform: translateZ(0);解決。

2) overflow:scroll

3) hover effects

有些:hover偽類在頁面滾動時會不小心就觸發到,如hover效果有陰影、圓角等比較耗時的屬性時,建議頁面滾動時,先取消hover效果,滾動停止後再加上hover效果。這個可以通過在外層加類名進行控制。

長時間渲染包括:

1)複雜的CSS

2)Image Decodes

這裡特別是圖片的Image Decodes及 Images Resize 這2個過程在移動端是非常耗時的,如:

webkit瀏覽器渲染影響因素分析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.