999精品久久久中文字幕蜜桃,天天影视网色香欲综合网,久久久一本精品99久久精品66,欧美综合天天夜夜久久,色婷婷精品久久一区二区三区,国产成人精品久久久久网站,97精品国产91久久久,99久久亚洲综合精品成人网

英泰移動通信教育

7x24小時咨詢熱線

400-660-3310

當前位置 : 好學校 英泰移動通信教育 學習資訊 資訊詳情

如何優化前端性能(五):減少重繪回流

2021-12-06

1、避免使用層級較深的選擇器,或其他一些復雜的選擇器,以提高CSS渲染效率

2、避免使用CSS表達式,CSS表達式是動態設置CSS屬性的強大但危險方法,它的問題就在于計算頻率很快。不僅僅是在頁面顯示和縮放時,就是在頁面滾動、乃至移動鼠標時都會要重新計算一次

3、元素適當地定義高度或最小高度,否則元素的動態內容載入時,會出現頁面元素的晃動或位置,造成回流

4、給圖片設置尺寸。如果圖片不設置尺寸,第1次載入時,占據空間會從0到完全出現,上下左右都可能位移,發生回流

5、不要使用table布局,因為一個小改動可能會造成整個table重新布局。而且table渲染通常要3倍于同等元素時間

6、能夠使用CSS實現的效果,盡量使用CSS而不使用JS實現

web前端

渲染層

1、此外,將需要多次重繪的元素獨立為render layer渲染層,如設置absolute,可以減少重繪范圍

2、對于一些進行動畫的元素,使用硬件渲染,從而避免重繪和回流

DOM優化

1、緩存DOM

const div = document.getElementById('div')

由于查詢DOM比較耗時,在同一個節點無需多次查詢的情況下,可以緩存DOM

2、減少DOM深度及DOM數量

HTML 中標簽元素越多,標簽的層級越深,瀏覽器解析DOM并繪制到瀏覽器中所花的時間就越長,所以應盡可能保持 DOM 元素簡潔和層級較少。

3、批量操作DOM

由于DOM操作比較耗時,且可能會造成回流,因此要避免頻繁操作DOM,可以批量操作DOM,先用字符串拼接完畢,再用innerHTML更新DOM

4、批量操作CSS樣式

通過切換class或者使用元素的style.csstext屬性去批量操作元素樣式

5、在內存中操作DOM

使用DocumentFragment對象,讓DOM操作發生在內存中,而不是頁面上

6、DOM元素離線更新

對DOM進行相關操作時,例、appendChild等都可以使用Document Fragment對象進行離線操作,帶元素“組裝”完成后再一次插入頁面,或者使用display:none 對元素隱藏,在元素“消失”后進行相關操作

7、DOM讀寫分離

瀏覽器具有惰性渲染機制,連接多次修改DOM可能只觸發瀏覽器的一次渲染。而如果修改DOM后,立即讀取DOM。為了**讀取到正確的DOM值,會觸發瀏覽器的一次渲染。因此,修改DOM的操作要與訪問DOM分開進行

8、事件代理

事件代理是指將事件監聽器注冊在父級元素上,由于子元素的事件會通過事件冒泡的方式向上傳播到父節點,因此,可以由父節點的監聽函數統一處理多個子元素的事件

利用事件代理,可以減少內存使用,提高性能及降低代碼復雜度

9、防抖和節流

使用函數節流(throttle)或函數去抖(debounce),限制某一個方法的頻繁觸發

10、及時清理環境

及時消除對象引用,清除定時器,清除事件監聽器,創建最小作用域變量,可以及時回收內存

收藏
分享到:

相關課程

相關資訊

英泰移動通信教育

英泰移動通信教育

認證等級

信譽良好,可安心報讀

英泰移動通信教育

已獲好學校V2信譽等級認證

信譽值

  • (60-80)基礎信譽積累,可放心報讀
  • (81-90)良好信譽積累,可持續信賴
  • (91-100)充分信譽積累,推薦報讀

與好學校簽訂讀書保障協議:

  • 100%
  • 57
  • 3557
在線咨詢
官方授權聲明

尊敬的平臺會員您好,[英泰移動通信教育]資質文件正在審核中。如需了解[英泰移動通信教育]服務明細或申請試聽服務,
請點擊:聯系客服

; 主站蜘蛛池模板: 夏津县| 宁远县| 乌拉特中旗| 综艺| 那曲县| 常熟市| 顺平县| 莱芜市| 广宗县| 万山特区| 重庆市| 太仓市| 山阴县| 华阴市| 册亨县| 甘谷县| 大庆市| 廊坊市| 乌兰察布市| 宁城县| 静宁县| 涟水县| 防城港市| SHOW| 科技| 福清市| 青铜峡市| 安化县| 晋宁县| 金乡县| 荔波县| 宜川县| 临海市| 深州市| 芜湖县| 穆棱市| 启东市| 庆阳市| 长泰县| 淳化县| 邹平县|