英泰移動通信教育

7x24小時咨詢熱線

400-660-3310

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

如何優(yōu)化前端性能(六):性能更好的API

2021-12-06

web前端

1、用對選擇器

選擇器的性能排序如下所示,盡量選擇性能更好的選擇器

id選擇器(#myid)

類選擇器(.myclassname)

標簽選擇器(div,h1,p)

相鄰選擇器(h1+p)

子選擇器(ul > li)

后代選擇器(li a)

通配符選擇器(*)

屬性選擇器(a[rel="external"])

偽類選擇器(a:hover,li:nth-child)

2、使用requestAnimationFrame來替代setTimeout和setInterval

希望在每一幀剛開始的時候對頁面進行更改,目前只有使用 requestAnimationFrame 能夠**這一點。使用 setTimeout 或者 setInterval 來觸發(fā)更新頁面的函數,該函數可能在一幀的中間或者結束的時間點上調用,進而導致該幀后面需要進行的事情沒有完成,引發(fā)丟幀

3、使用IntersectionObserver來實現圖片可視區(qū)域的懶加載

傳統(tǒng)的做法中,需要使用scroll事件,并調用getBoundingClientRect方法,來實現可視區(qū)域的判斷,即使使用了函數節(jié)流,也會造成頁面回流。使用IntersectionObserver,則沒有上述問題

4、使用web worker

客戶端javascript一個基本的特性是單線程:比如,瀏覽器無法同時運行兩個事件處理程序,它也無法在一個事件處理程序運行的時候觸發(fā)一個計時器。Web Worker是HTML5提供的一個javascript多線程解決方案,可以將一些大計算量的代碼交由web Worker運行,從而避免阻塞用戶界面,在執(zhí)行復雜計算和數據處理時,這個API非常有用

但是,使用一些新的API的同時,也要注意其瀏覽器兼容性

收藏
分享到:

相關課程

相關資訊

英泰移動通信教育

英泰移動通信教育

認證等級

信譽良好,可安心報讀

英泰移動通信教育

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

信譽值

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

與好學校簽訂讀書保障協(xié)議:

  • 100%
  • 54
  • 3252
在線咨詢
;