CSS UsageCSS減肥工具
前端構(gòu)建工程師經(jīng)常會遇到隨著網(wǎng)站產(chǎn)品的規(guī)模擴(kuò)大、產(chǎn)品數(shù)量、日常專題上下線等情況,造成網(wǎng)站的CSS慢慢變得臃腫從而影響了網(wǎng)站的用戶體驗(yàn),這種 情況下,給網(wǎng)站CSS文件減肥類似于海底撈針的大工程,因?yàn)樯圆涣羯?,一個不經(jīng)意的刪除,就會造成線上的產(chǎn)品的事故。下面我們就給大家推薦一款CSS減肥 的工具–Firefox插件 CSS Usage.
首先,我們需要安裝Firefox,或者確定你已經(jīng)安裝的版本已經(jīng)高于3.1;
第二步,安裝前端開發(fā)人員最普及的開發(fā)工具 Firebug;
第三步,安裝CSS Usage 0.2.2(寫此文時的版本);
第四步,在瀏覽器中打開我們要優(yōu)化的頁面(本地的頁面也可以),點(diǎn)擊右下角的firebug小圖標(biāo),打開firebug工具窗口,我們會看到在工具選項(xiàng)中我們有一個 CSS Usage工具的按鈕。
首先我們來分析最上面的三個功能按鈕的使用
Scan: 通過字面意思我們就能知道,這是一個掃描當(dāng)前頁面的工具,如果我們的站點(diǎn)只有一個頁面或者幾個頁面,我們可以通過使用此功能按鍵來查看頁面的css實(shí)用情況.
Clear: 清除掃描結(jié)果,但我們查看完網(wǎng)頁,并對CSS 進(jìn)行了修改后,我們就不需要以前的掃描結(jié)果了,那么我們就可以使用Clear功能鍵,清除以前的掃描結(jié)果緩存,重新開始我們的掃描.
AutoScan: 我們的網(wǎng)站可能會有很多的頁面,更有可能有很多的彈出層,如果我們每次都點(diǎn)擊掃描的話,會占用我們大量的時間,AutoScan功能鍵可以使我們的掃描工作更自動化,提高我們的工作效率.
當(dāng)我們點(diǎn)擊Scan按鍵后會有什么樣的情況呢?我們以 獨(dú)臂老宋的博客為案例http://blog.sina.com.cn/laosong11
點(diǎn)擊Scan之后, CSS Usage會對當(dāng)前的頁面HTML和樣式進(jìn)行掃描,如下圖
上圖是我把掃描結(jié)果折疊后的樣子,我們可以看到,CSS Usage對頁面css樣式表的內(nèi)聯(lián)(inline)樣式和外鏈樣式進(jìn)行了掃描,HTML也作了掃描并顯示加載時間.
下面我們展開一個內(nèi)聯(lián)樣式
我們能看到這一句Line CSS Selector Seen, Seen before, Unseen, :hover,告訴我們” 列出CSS選擇器的狀態(tài):
綠色–表示當(dāng)前掃描看到的,
深綠色–的以前的掃描中看到的,
紅色–的表示在當(dāng)前和以前掃描中均未發(fā)現(xiàn)的.
灰色–的代表偽類的選擇器CSS,這部分將會被忽視.
在這個列表的最下面,我們也會看到有個統(tǒng)計,告訴我們有多少被發(fā)現(xiàn),多少沒有發(fā)現(xiàn),被忽視的是多少,CSS實(shí)用的覆蓋率是多少的統(tǒng)計.
同時,CSS Usage還提供給我們關(guān)于CSS某個選擇器被實(shí)用多少次的統(tǒng)計
如果我們一直使用 Auto Scan功能的話,我們的Scan次數(shù)也是在累積的,比如我們從首頁到博文目錄、再到圖片、最后到達(dá)關(guān)于我,每一次頁面跳轉(zhuǎn),CSS Usage 都會自動增加頁面的掃描次數(shù)。如下圖:
如果你想知道,我們都是在哪些頁面進(jìn)行的掃描,是不是覆蓋到了所有的頁面,你可以看到關(guān)于頁面的掃描記錄
如果我們僅僅是給CSS減肥的話,那我們就可以對紅色的選擇器開始動手了,CSS Usage給我們提供了一個更智能的工具, export cleaned css(導(dǎo)出清理后的CSS).但是直接使用這個工具對很多大型網(wǎng)站來說都需要勇氣,我的建議還是保險一些的好,我們可以選擇選擇器的名稱,通過文件夾的 搜索功能,來查找這個css選擇器的樣式是不是已經(jīng)作為下線 產(chǎn)品或者組件的組成部分,已經(jīng)沒有作用.或許我們在一個旮旯又 發(fā)現(xiàn)了它 ,那樣我們只是當(dāng)時出了冷汗,而不必等修改的文件上線后再出冷汗.
我們還要提一下這個工具的缺點(diǎn):
如果網(wǎng)站使用了大量的ajax和dhtml的話,你需要盡可能多地打開那些隱藏的div/窗口和tab,讓Css Usage爬取盡可能多的內(nèi)容。
如果我們的網(wǎng)站頁面數(shù)量很多的話,占用CPU和內(nèi)存會比較大,需要足夠的耐心。
