97国产精品视频人人做人人爱,3344在线观看无码,成年人国产视频,欧美日一级片,在线看AV天堂,高清无码一本到东京热,欧美一级黄片一区2区,免费又爽又刺激高潮网址

高效前端之再探頁面渲染優化

2021-4-2    前端達人

首先仍然不得不提的是 “在客戶端拿到 HTML 后的處理”:

  • 從上到下解析 HTML 文檔生成DOM樹;
  • 加載解析樣式構建CSSOM樹;
  • 加載并執行JavaScript代碼;
  • 根據DOM樹和CSSOM樹,生成 render 樹;
  • 渲染;
  • 布局;
  • 繪制

我們可能很多次聽到過:“要盡可能地減少重排和重繪,因為它們會影響瀏覽器性能。”
但,為什么呢?

事實上,一個頁面是由許多層級組成的(就像千層餅一樣) —— 這里的“層級”指的是“ DOM 元素渲染層(Layer)”。一個頁面在構建完 render tree 到展現在我們面前還經歷了一個“特別的流程”:

  1. 瀏覽器會先獲取DOM樹并依據樣式將其分割成多個獨立的渲染層
  2. CPU 將每一層繪制進位圖中
  3. 將位圖作為紋理上傳至 GPU(顯卡)繪制
  4. GPU 將所有的渲染層緩存并復合多個渲染層最終形成我們的圖像(如果下次上傳的渲染層沒有發生變化,GPU 就不需要對其進行重新繪制)

(:從上面的步驟我們可以知道:布局是CPU處理的,而繪制是由GPU完成的。
就像這張圖說的(from Firefox的3D View插件的頁面Layers層級圖)
layer-index

問題就發生在上面所說流程的第2、4步中。大家試想一下:如果我們把那些會發生復雜運動/變化或一直發生大量重排重繪的元素提起出來,單獨放在一個渲染層觸發,那它就不會連累其他元素了!

那什么情況下會觸發渲染層呢?
比如 video 、WebGL 、Canvas 、CSS3 3D 、CSS濾鏡 、z-index大于某個相鄰節點的值 的元素都會觸發新的Layer —— 這里要理解一點:它并不單單指 z-index!這里極力推薦張鑫旭大大的這一篇文章:深入理解CSS中的層疊上下文和層疊順序
比較簡單的方法是,給元素加上下面的樣式:

transform: translateZ(0); backface-visibility: hidden; 
  • 1
  • 2

我們把容易觸發重排重繪的元素單獨觸發渲染層,讓它與那些“靜態”元素隔離,讓 GPU 分擔更多的渲染工作,我們通常把這樣的措施成為硬件加速,或者是 GPU 加速。大家之前肯定聽過這個說法 —— 就比如CSS中的 will-change 。

不論是重排還是重繪,都會阻塞瀏覽器。要提高網頁性能,就要降低重排和重繪的頻率和成本,近可能少地觸發重新渲染。正如我們上面提到的:重排是由 CPU 處理的,而重繪是由 GPU 處理的,CPU 的處理效率遠不及 GPU,并且重排一定會引發重繪,而重繪不一定會引發重排。所以在性能優化工作中,我們更應當著重減少重排的發生。


還有什么可以優化的?

  1. CSS 屬性讀寫分離:瀏覽器沒次對元素樣式進行讀操作時,都必須進行一次重新渲染(重排 + 重繪),所以我們在使用 JS 對元素樣式進行讀寫操作時,最好將兩者分離開,先讀后寫,避免出現兩者交叉使用的情況
  2. 通過切換 class 或者 style.csstext 屬性去批量操作元素樣式
  3. DOM 元素離線更新:當對 DOM 進行相關操作時,例、appendChild 等都可以使用 documentFragment 對象進行離屏操作,帶元素“組裝”完成后再一次插入頁面,或者使用 display:none 對元素隱藏,在元素“消失”后進行相關操作,然后再顯示出來
  4. visibility: hidden 是個好東西,它既有display的隱藏,又有opacity的占位。而且它還支持移動動畫
  5. 圖片在渲染前指定大?。阂驗?img 元素是內聯元素,所以在加載圖片后會改變寬高,嚴重的情況會導致整個頁面重排,所以最好在渲染前就指定其大小,或者讓其脫離文檔流

日歷

鏈接

個人資料

藍藍設計的小編 http://m.0391cbd.com

存檔

主站蜘蛛池模板: 亚洲欧美日本国产综合在线| 最新午夜男女福利片视频| 亚洲精品成人片在线观看 | 中文字幕久久亚洲一区| 国产自无码视频在线观看| 露脸国产精品自产在线播| 久久精品这里只有国产中文精品| 国产一级在线观看www色| 国产97视频在线观看| 欧美不卡二区| 伊人福利视频| 日韩精品毛片人妻AV不卡| 亚洲人成网站18禁动漫无码| 国产精品亚洲а∨天堂免下载| 波多野结衣在线se| 色综合手机在线| 一区二区欧美日韩高清免费| 伊人久久福利中文字幕| 喷潮白浆直流在线播放| 91精品最新国内在线播放| 亚洲高清中文字幕| 国产自在线拍| 大乳丰满人妻中文字幕日本| 日韩精品一区二区三区大桥未久 | 伊人久久久久久久久久| 99成人在线观看| www.99精品视频在线播放| 99爱在线| 亚洲精品无码高潮喷水A| 亚洲美女久久| 亚洲一区二区三区国产精品| 婷婷六月天激情| 天堂va亚洲va欧美va国产| 人妻丰满熟妇av五码区| 四虎综合网| 欧美午夜精品| 亚洲中文字幕23页在线| 精品一区二区三区波多野结衣| 国产高清自拍视频| 日本黄色a视频| 久久综合色天堂av| 国产成人久久综合777777麻豆 | 天堂av高清一区二区三区| 亚洲日韩AV无码一区二区三区人| 中文字幕天无码久久精品视频免费 | 亚洲国产精品成人久久综合影院| a级毛片免费播放| 国产精品hd在线播放| 99re视频在线| 精品久久777| 99久久精品无码专区免费| 好紧太爽了视频免费无码| 欧美视频在线播放观看免费福利资源| 国产精品页| 国产美女主播一级成人毛片| 免费人成视频在线观看网站| 欧美一区二区三区不卡免费| 国产欧美中文字幕| 日韩欧美国产精品| 国产精品无码制服丝袜| 视频二区欧美| 日韩av在线直播| 欧美成在线视频| 国产日韩丝袜一二三区| 啦啦啦网站在线观看a毛片| 国产精品福利在线观看无码卡| 一级一级一片免费| 美女一区二区在线观看| 99人妻碰碰碰久久久久禁片| 一级毛片网| 4虎影视国产在线观看精品| 谁有在线观看日韩亚洲最新视频| 久久综合一个色综合网| 中文字幕日韩丝袜一区| 一级爱做片免费观看久久| 欧美特黄一免在线观看| 久久久久青草大香线综合精品| 亚洲综合精品香蕉久久网| 美女裸体18禁网站| 国产成人福利在线| 国产噜噜噜视频在线观看| 亚洲国产一区在线观看|