成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

還在摸黑 ThreeShaking 么?來試下 Chrome Devtools 的 Coverage 可視化

系統
網頁的性能優化我們會分為兩部分來看:資源加載的性能優化、代碼運行的性能優化。代碼運行的性能優化需要用 Performance 工具記錄某段時間的代碼運行情況,分析出 long task,定位到耗時高的代碼,針對性的優化它。

[[443091]]

網頁的性能優化我們會分為兩部分來看:資源加載的性能優化、代碼運行的性能優化。

代碼運行的性能優化需要用 Performance 工具記錄某段時間的代碼運行情況,分析出 long task,定位到耗時高的代碼,針對性的優化它。

比如下圖中被標紅的就是 long task:

可以進一步定位到耗時高的代碼,然后對它進行優化。

(不會用 Performance 工具做性能分析的話,可以看這篇文章:快速掌握 Performance 性能分析:一個真實的優化案例)

還有一個方面就是資源加載的性能優化了。

我們會用 webpack、purgecss 做 js 和 css 的 treeshaking,會用 webpack 的 code spliting 做懶加載。目的都是為了把無用的代碼去掉或者延后加載來提升網頁性能。

但是,treeshaking 和 code spliting 很多情況下我們都是摸黑做的,可能用上了這個功能,但卻不知道效果怎么樣,不知道是否真的達到了優化加載性能的目的,把用不到的代碼給刪掉或者延后加載了。

如果能像 Performance 工具分析和可視化代碼耗時一樣,能把沒用到的代碼也給分析出來并可視化展示就好了,那樣就能針對性的去做 treeshaing 或懶加載,還能直觀的看到優化前后的效果。

其實,Chrome Devtools 是有這個功能的,只是很多人不知道。今天我們就來學下這個工具吧。

Coverage 工具分析無用代碼

Chrome Devtools 提供了 Coverage 工具用于分析運行時的代碼使用情況:

我們準備這樣一段代碼:

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4.     <meta charset="UTF-8"
  5.     <style type="text/css"
  6.         #box { 
  7.             width: 300px; 
  8.             height: 300px; 
  9.             background: blue; 
  10.         } 
  11.         a { 
  12.             color: #fff; 
  13.         } 
  14.         .box { 
  15.             background: pink; 
  16.         } 
  17.     </style> 
  18. </head> 
  19. <body> 
  20.     <div id="box"
  21.     </div> 
  22.     <script> 
  23.         function add(a, b) { 
  24.             return a + b; 
  25.         }  
  26.         function subtract(a, b) { 
  27.             return a - b; 
  28.         } 
  29.         function multiply(a, b) { 
  30.             return a * b; 
  31.         } 
  32.         function divide(a, b) { 
  33.             return a / b; 
  34.         } 
  35.  
  36.         const res = add(3, 5); 
  37.         console.log(res); 
  38.  
  39.         const res2 = multiply(2, 4); 
  40.         console.log(res2); 
  41.     </script> 
  42. </body> 
  43. </html> 

很明顯,js 里面 subtract、divide 兩個函數沒有用到,css 里面 a、.box 的樣式沒有用到。

我們用 Coverage 工具分析下:

點擊 reload 按鈕

頁面會重新加載并記錄代碼使用情況,藍色是使用的,紅色是未使用的。

點擊會打開 Sources 面板展示詳情:

可以看到,正如我們分析的,js 和 css 的沒用到的代碼都被分析出來了。

優化目標有了,接下來的優化就很有針對性了。

我們會做這些優化:

  • 從源碼中刪掉(如果代碼確實沒用的話)
  • 用 webpack、purgecss 或其他工具的 treeshking 功能在產物中刪掉(如果這個網頁里用不到的話)
  • 用 webpack 或其他工具的 code spliting 做懶加載(如果暫時用不到,之后可能用到的話)

這些優化的目標就是把分析出來的代碼刪掉或者懶加載,優化得很有針對性,而且優化完后可以直觀的看到優化的效果。

小結:資源加載的性能優化可以用 Coverage 工具記錄代碼使用情況,分析出沒用到的代碼,使用 treeshking、懶加載等方式,針對性的優化它。

一般網頁中都引入了多個文件,每個文件代碼使用情況的分析也是一樣 。

比如這樣一個 html,引入了外部 css 和 js 兩個文件

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4.     <meta charset="UTF-8"
  5.     <link rel="stylesheet" type="text/css" href="index.css" /> 
  6. </head> 
  7. <body> 
  8.     <div id="box"
  9.     </div> 
  10.     <script src="index.js"></script> 
  11. </body> 
  12. </html> 

js:

  1. function add(a, b) { 
  2.     return a + b; 
  3. }  
  4. function subtract(a, b) { 
  5.     return a - b; 
  6. function multiply(a, b) { 
  7.     return a * b; 
  8. function divide(a, b) { 
  9.     return a / b; 
  10.  
  11. const res = add(3, 5); 
  12. console.log(res); 
  13.  
  14. const res2 = multiply(2, 4); 
  15. console.log(res2); 

css:

  1. #box { 
  2.     width: 300px; 
  3.     height: 300px; 
  4.     background: blue; 
  5. a { 
  6.     color: #fff; 
  7. .box { 
  8.     background: pink; 

也同樣可以分析出來:

總結

性能優化分為代碼運行的性能優化、資源加載的性能優化。

代碼運行的性能優化會用 Performance 工具記錄耗時數據,可以可視化的分析,然后針對性的優化。

同樣,資源加載的性能優化可以用 Coverage 工具記錄代碼使用情況,可視化的標記出沒用到的代碼,之后就可以針對性的優化了,用 treeshking 或者 code splinting 的懶加載等方式。

 

總之,別再摸黑做 treeshking 等性能優化了,學會了用 Coverage 工具,要優化啥,優化的效果怎么樣,一目了然!

 

責任編輯:武曉燕 來源: 神光的編程秘籍
相關推薦

2021-12-25 22:30:27

Chrome DevTJavaScript調試工具

2022-08-23 23:19:12

ChromeCoverage

2020-03-11 14:39:26

數據可視化地圖可視化地理信息

2017-10-14 13:54:26

數據可視化數據信息可視化

2009-04-21 14:26:41

可視化監控IT管理摩卡

2022-08-26 09:15:58

Python可視化plotly

2017-10-09 10:04:48

JavaScriptChrome DevT調試

2022-09-23 15:01:00

JavaScripChrome技巧

2022-07-29 09:01:20

Chrome試源代碼調試技巧

2022-10-28 19:19:11

ChromeNetwork網絡

2022-09-02 09:01:36

ChromeWeb調試

2015-08-20 10:06:36

可視化

2018-05-17 08:41:12

云服務虛擬化數據中心

2010-06-09 15:09:57

IP網絡

2017-02-23 09:42:53

大數據數據可視化技術誤區

2022-03-01 10:29:44

Kubernetes容器

2022-07-08 15:00:04

農業噴灌項目鴻蒙

2022-06-06 21:46:32

Kubernetes網絡

2018-05-31 08:25:13

誤區工具可視化

2021-12-28 07:20:44

UA網絡協議
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品亚洲精品国产欧美 | 亚洲三级国产 | 国产精品美女久久久免费 | 69精品久久久久久 | 国产精品免费小视频 | 亚洲视频欧美视频 | 欧美一区二区网站 | 日韩手机视频 | 一区二区影院 | 天天爱av | 九九热精品在线 | 五月天激情综合网 | 天天躁日日躁狠狠的躁天龙影院 | 欧美一级α片 | 81精品国产乱码久久久久久 | 国产精品免费一区二区三区四区 | 亚洲视频在线看 | 免费久久精品视频 | 激情五月婷婷丁香 | 在线看亚洲 | 国产日韩久久 | av中文字幕在线观看 | 少妇一级淫片免费播放 | 99久视频 | 亚洲一区av | 国产一区二区三区四区五区加勒比 | 祝你幸福电影在线观看 | 精品欧美激情在线观看 | 性高朝久久久久久久3小时 av一区二区三区四区 | 日产精品久久久一区二区福利 | 欧美国产视频一区二区 | 国产a视频 | 操亚洲| 精品久久久久国产免费第一页 | 欧美日韩在线观看一区 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 91久久精品一区 | 欧美亚洲国语精品一区二区 | 国产成人精品久久二区二区91 | 91亚洲国产成人久久精品网站 | 日韩一区二区三区在线观看 |