国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

一個(gè)超棒的CSS小工具:最佳Web性能優(yōu)化

開發(fā) 前端
今天寫了一個(gè)CSS的小工具,也算是最近關(guān)于CSS和Web性能優(yōu)化思考的一次實(shí)踐。

下面開始介紹一下,這個(gè)小工具主要功能有以下這些:

◆ 代碼壓縮

◆ 合并請(qǐng)求

◆ 語法擴(kuò)展

◆ 緩存設(shè)置

代碼壓縮

這個(gè)小工具其實(shí)是一個(gè)Default.aspx頁面文件,我們只要把它放到網(wǎng)站CSS文件夾里面,保證這個(gè)頁面命名是默認(rèn)首頁,然后把我們?cè)瓉硪玫腃SS文件夾后面加一個(gè)問號(hào)就行了。用我的博客舉個(gè)例子,我本來文章頁面中有三個(gè)CSS引用:

  1. <link href="css/detail.css"  rel="stylesheet" type="text/css" /> 
  2. <link href="css/shThemeDefault.css"  rel="stylesheet" type="text/css" /> 
  3. <link href="css/shCore.css"  rel="stylesheet" type="text/css" /> 

然后我們只要改成這樣就可以了:

  1. <link href="css/?detail.css"  rel="stylesheet" type="text/css" /> 
  2. <link href="css/?shThemeDefault.css"  rel="stylesheet" type="text/css" /> 
  3. <link href="css/?shCore.cssshThemeDefault.css"  rel="stylesheet" type="text/css" /> 

這樣之后有什么分別呢?加了問號(hào)之后,CSS引用都定向到我們的頁面,頁面根據(jù)后面的參數(shù),讀取CSS文件,然后把其中的無效空格,換行,注釋全部清除掉。然后返回一個(gè)壓縮后的CSS文件。可以點(diǎn)擊下面兩個(gè)鏈接看看壓縮前后的效果:

壓縮前:http://www.vinqon.com/codeblog/css/shCore.css

壓縮后:http://www.vinqon.com/codeblog/css/?shCore.css

合并請(qǐng)求

對(duì)于一個(gè)Web優(yōu)化狂熱者來說,每一個(gè)Http請(qǐng)求都是那么的刺眼。這不得不說說一些讓人糾結(jié)的事情。看過《高性能網(wǎng)站建設(shè)指南》的都知道,黃金法則第一條就是減少http請(qǐng)求,對(duì)于CSS來說,我們一般用這些方法來盡量減少請(qǐng)求:

1.合并CSS文件。一個(gè)頁面往往引用了多個(gè)CSS文件,為了減少其請(qǐng)求數(shù)目,我們可以直接把該頁面需要請(qǐng)求的CSS文件手動(dòng)合并成為一個(gè)輸出。但是,這帶來的后果是,嚴(yán)重不利于代碼的維護(hù)和管理。并且,合并之后的代碼都是獨(dú)立的,多個(gè)頁面共用的代碼無法緩存。

2.內(nèi)聯(lián)CSS代碼。內(nèi)聯(lián)CSS的好處是完全杜絕了http請(qǐng)求,而且可以保證CSS里面附帶的圖片也能立刻請(qǐng)求,讓頁面更快完成渲染,QQ,新浪等的門戶首頁都使用了內(nèi)嵌CSS。但是問題還是那個(gè),首先不利于維護(hù),其次是不能實(shí)現(xiàn)緩存。因?yàn)檫@些CSS每次都要下載,如果外聯(lián)的話第二次請(qǐng)求的時(shí)候就可以直接使用緩存文件。

針對(duì)內(nèi)聯(lián)CSS代碼的方案,之前我就想過做一個(gè)ASP.Net的插件,把在引用css的link標(biāo)簽改成服務(wù)器控件,輸出頁面的時(shí)候,控件會(huì)加載css文件內(nèi)嵌到頁面中,這樣可以使內(nèi)聯(lián)代碼也便于維護(hù)。

而針對(duì)合并CSS文件的方案,我在這個(gè)小工具中實(shí)現(xiàn)了請(qǐng)求時(shí)自動(dòng)合并,這其實(shí)也不是什么新東西,好像之前也見過,還是用上面的例子,三個(gè)CSS文件合并:

  1. <link href="css/?detail.css&shCore.css&shThemeDefault.css"  rel="stylesheet" type="text/css" /> 

只要用&把不同的文件名字鏈接起來,就會(huì)得到一個(gè)合并的輸出。通過這樣的實(shí)時(shí)合并,很好避免了手動(dòng)合并帶來的代碼混亂,而且當(dāng)有大量文件的時(shí)候,可以減少http請(qǐng)求數(shù)目,有明顯的提升。

但是,不得不提一下的是:不一定全部CSS合并起來輸出就是最好的,原因首先還是緩存問題,共用文件不應(yīng)該合并,因?yàn)檫@樣使得它每次都要重新下載。另外一個(gè)也是很重要的問題是,瀏覽器是會(huì)并行下載CSS文件的,如果分成多個(gè)文件,可以讓最早下載下來的CSS文件立刻被使用,如果我們把全部亂七八糟的都合并起來,瀏覽器要等到整個(gè)CSS文檔下載完畢才能使用,可能帶來性能的倒退。所以,結(jié)論是:共用和基礎(chǔ)的CSS文件不應(yīng)該合并。

語法擴(kuò)展

先說說目前比較經(jīng)典的一種CSS代碼組織結(jié)構(gòu),這也是《編寫高質(zhì)量代碼—Web前端開發(fā)修煉之道》作者推薦的方案:

◆ 基礎(chǔ)樣式(主要包括對(duì)默認(rèn)樣式的Reset以及對(duì)用class選擇器組合常用的樣式)

◆ 全站樣式(全站各個(gè)頁面都要用到的樣式,一般負(fù)責(zé)網(wǎng)站整體結(jié)構(gòu)的構(gòu)架)

◆ 頁面樣式(頁面級(jí)的樣式,針對(duì)頁面細(xì)節(jié)的調(diào)整)

關(guān)于CSS代碼組織不是本次主題,我想說一下的是上面粗體字提到的一種比較流行的方法:·

  1. .fb12{font-size:12px;font-weight:blod}  
  2. .red{color:red}  
  3. .clear{clear:both

然后我們?cè)陧撁嬷羞@么使用:

  1. <div id="example" class="fb12 red clear">這是范例!</div> 

這些寫法其實(shí)也沒什么特別,但是我覺得很值得探討,沒興趣的可以直接跳過這一段。我們一般在頁面編碼時(shí),都是先寫好HTML,再去寫樣式。在寫樣式的時(shí)候我們要為某個(gè)標(biāo)簽應(yīng)用某個(gè)樣式,就得用各種選擇符找到目標(biāo)元素,然后賦予樣式。這時(shí)候,無論是類,還是標(biāo)簽,ID,它們的角色都是選擇者,區(qū)別只是ID用來選一個(gè),標(biāo)簽和類多用來選擇多個(gè)而已。但是在上面例子中,類的情況就有些不同,在上面那種類的樣式定義的時(shí)候,我們不會(huì)想到這一定會(huì)用在哪里,我們只想到這些樣式使用可能比較頻繁,先寫出來,以便復(fù)用,最后才去HTML標(biāo)簽上加上多個(gè)不同的class,組合成一個(gè)新的獨(dú)立樣式。這和直接在style上面寫規(guī)則的不同是,style只能使用的CSS基本屬性,是粒度最小的CSS規(guī)則,用class可以通過基本屬性的組合,形成一定粒度,然后我們可以通過在多個(gè)標(biāo)簽使用不同類的組合形成最終樣式。這樣做一方面可以保證代碼復(fù)用,另一方面又可以便于維護(hù)。其實(shí)上,這種方法更多有標(biāo)簽選擇樣式的意味,而類這個(gè)雙向選擇特性是源于 類選擇符與標(biāo)簽之間可以實(shí)現(xiàn)多對(duì)多的關(guān)系。

但是,這種寫法有一個(gè)弊端,就是不利于結(jié)構(gòu)和樣式的分離。樣式出現(xiàn)在元素里面,一旦修改,很容易觸碰到html代碼。為了解決這個(gè)問題,我在這個(gè)小工具里進(jìn)行了語法擴(kuò)展,我們可以在樣式表中使用多個(gè)class。看例子吧:

  1. .fb12{font-size:12px;font-weight:blod;}  
  2. .red{color:red;}  
  3. .clear{clear:both;}  
  4.  
  5. #example{class:fb12 red clear; width:500px;}  

我們編寫css的時(shí)候可以直接向上面那樣寫,然后輸出會(huì)變成這樣:

  1. .fb12{font-size:12px;font-weight:blod;}  
  2. .red{color:red;}  
  3. .clear{clear:both;}  
  4. #example{font-size:12px;font-weight:blod;color:red;clear:both;width:500px;} 

很久之前就想過,如果css有這功能多好哇,代碼可以高度復(fù)用了。這次終于弱弱地實(shí)現(xiàn)了一下了。需要注意的是,編譯過程代碼寫得不太好,最好嚴(yán)格遵循css格式,譬如,每個(gè)規(guī)則后面都必須有分號(hào)。另外,也不支持嵌套。

感謝Gray Zhang的推薦,原來目前已經(jīng)有不少強(qiáng)大CSS語法擴(kuò)展的工具,譬如Sass,Lesscss,兩者功能相似,后者甚至支持在客戶端編譯。

緩存設(shè)置

上面很多次提到過緩存,但是因?yàn)槲覀兪褂昧隧撁孑敵觯32荒鼙粸g覽器緩存,這需要我們自己手動(dòng)設(shè)置,只要在參數(shù)后面加上expire=分鐘數(shù),就可以了,譬如:

http://localhost:56349/MyBlog/CodeBlog/css/?global.css&expire=50001

這個(gè)小工具很多正則,有人可能會(huì)覺得服務(wù)器也應(yīng)該緩存一下吧,我沒有做服務(wù)器的緩存是因?yàn)槲矣X得客戶端緩存已經(jīng)ok了,而且在本機(jī)調(diào)試的時(shí)候,每次頁面輸出都是在10毫秒之內(nèi),緩不緩存對(duì)用戶沒有很明顯的感覺。服務(wù)器我就不管啦~

最后,提供源文件下載。

原文鏈接:http://www.cnblogs.com/vinqon/archive/2011/05/02/2034459.html

【編輯推薦】

  1. 了解CSS的查找匹配原理 讓CSS更簡潔、高效
  2. 高性能WEB開發(fā)之JS、CSS的合并壓縮
  3. 強(qiáng)烈推薦40個(gè)優(yōu)秀的免費(fèi)CSS工具
  4. 強(qiáng)力推薦12組免費(fèi)的CSS3按鈕
  5. 10 個(gè)漂亮的CSS 3表單制作教程
責(zé)任編輯:陳貽新 來源: 詠聰?shù)牟┛?/a>
相關(guān)推薦

2012-02-16 10:12:23

JavaScript

2022-12-28 12:29:45

duf命令

2017-07-25 14:20:13

戴爾配置功耗

2011-03-09 09:25:12

CSS3

2022-03-30 15:11:26

Python房價(jià)工具

2013-03-29 14:46:33

App開發(fā)小工具輔助工具

2023-04-26 01:21:34

工具URL地址

2017-05-23 20:44:36

Linux緩存工具

2021-05-10 11:06:31

Python工具代碼

2019-10-31 10:43:05

Python 開發(fā)編程語言

2020-11-26 12:05:44

Python小工具代碼

2021-05-20 11:30:17

Python工具代碼

2020-08-25 20:10:53

GitHub代碼開發(fā)者

2009-11-19 08:48:10

Windows 7桌面工具

2024-09-24 17:54:26

Python開發(fā)

2021-11-05 06:57:50

架構(gòu)工具代碼

2024-03-08 14:45:35

2022-10-09 14:35:31

python工具Linux

2020-06-19 09:40:57

程序員遠(yuǎn)程開發(fā)者

2017-05-03 13:37:05

Linuxweb性能監(jiān)測
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产精品久久久久福利| 国产精品国产福利国产秒拍 | 国产婷婷色一区二区三区在线| 99视频在线| 日韩av不卡一区| 久久成年人视频| 日本欧美日韩| 欧美成人艳星乳罩| 成人在线视频亚洲| 在线观看日韩毛片| 亚洲女人天堂| 精品久久久久久国产91| 毛片视频免费| av日韩一区| 欧美极品少妇全裸体| 日韩精品系列| 伊人影院久久| 亚洲欧美国产精品| 黄视频在线播放| 久久久久久毛片| 韩国成人在线| 欧美日韩国产一区二区三区| 日本电影一区二区| 国产资源在线视频| 日韩欧美中文| 欧美丰满片xxx777| 蜜桃麻豆av在线| 国产在线不卡| 久久大综合网| 国产精品一区三区| 狠狠综合久久| 欧美极品美女电影一区| 男男电影完整版在线观看| 天天爱天天做天天操| 在线观看午夜av| 激情六月婷婷久久| 国产伊人精品在线| 四虎成人在线| 欧美一区二区精品久久911| 午夜影院网站| 夜夜精品视频一区二区| 国产精品丝袜久久久久久消防器材| 凹凸成人精品亚洲精品密奴| 久久综合精品国产一区二区三区| 亚洲第一av网站| 国产精品久久精品国产| 在这里有精品| 久久精品一偷一偷国产| 日韩一区精品| 神马国产精品影院av| 全部免费毛片在线播放网站| 亚洲资源网站| 在线观看你懂| 国产三线在线| 午夜精品视频| 色88888久久久久久影院野外| 欧美精品电影在线| 成人性生交大片免费网站| 97精品欧美一区二区三区| 国产欧美日韩在线看| av成人在线看| 国产日韩亚洲欧美在线| 精品亚洲一区二区三区在线观看 | 中文字幕成人一区| 精品无人区卡一卡二卡三乱码免费卡| 四虎精品在线观看| jk破处视频在线| 国产99久久久欧美黑人| 午夜视频在线观看一区| 久久久久网站| 国产成人精品免费视频大全最热 | 青青久草在线| 91av资源网| 日韩中文字幕国产| 狠狠躁18三区二区一区| 精品视频在线观看免费观看| 一区二区三区四区在线视频| 欧美视频一区二区三区在线观看 | 欧美在线关看| 五月婷婷六月合| 68精品国产免费久久久久久婷婷| 亚洲啪啪91| 羞羞视频在线免费国产| 黑人巨大精品欧美一区二区小视频| 国产精品大片免费观看| 91在线视频| 国产一区二区丝袜| 欧美性色黄大片| 国产成人免费在线| 91欧美在线| 91xxxxx| 亚洲精品美女在线| 美女一区二区三区在线观看| www在线播放| 国产亚洲精品一区二区| 欧美黄色免费| 免费在线观看91| 国产亚洲精品超碰| 日本午夜一区二区| 激情av在线| 欧美高清在线视频观看不卡| 成人自拍在线| 成人天堂入口网站| 国产精品偷伦视频免费观看国产| 伊人婷婷欧美激情| 精品少妇一区| gay网站在线| 国产精品嫩草在线观看| 国产mv免费观看入口亚洲| 欧洲国内综合视频| 999在线精品| 欧美精品一区三区在线观看| 蜜臀久久99精品久久久画质超高清 | 国产不卡视频在线播放| 亚洲欧美久久234| 蜜桃一区二区三区在线观看| 精品日本一区二区三区在线观看| 国产色产综合色产在线视频 | 成人高清免费观看| 男操女免费网站| 91麻豆精品国产无毒不卡在线观看| 日韩一区二区三区四区五区 | 日本久久精品| 黄色三及免费看| 国产欧美日韩专区发布| 丝袜美腿亚洲一区二区| 欧美日韩在线免费视频| 国产丝袜精品第一页| 成人在线免费观看视视频| 99精品国产高清一区二区| 日本福利视频网站| 成人动漫h在线观看| 日韩视频免费在线播放| 91精品91久久久中77777老牛| 国产乱子伦精品视频| 久久99久国产精品黄毛片入口| 3d成人h动漫网站入口| 91香蕉视频在线| 亚洲私人黄色宅男| 国产91露脸合集magnet| 国产午夜久久av| 免费在线一级视频| 黄色网免费看| 秋霞午夜在线观看| 国产中文在线| 视频在线91| 黄色三级视频在线| 大胆av不用播放器在线播放| 中文字幕av久久| 91精品久久久久久久久青青| 成人情趣片在线观看免费| 九九热r在线视频精品| 欧美韩国日本综合| 一区二区日韩欧美| 国产精品中文字幕亚洲欧美| 国产伦一区二区三区| 亚洲欧美成人| 亚洲少妇一区| 国产亚洲欧美日韩在线观看一区二区| 国产奶头好大揉着好爽视频| 51精品国产人成在线观看| 91久久精品视频| 欧美成人性色生活仑片| 菠萝蜜影院一区二区免费| 国产91亚洲精品一区二区三区| 亚洲最大福利视频网| 九九九九精品九九九九| 精品系列免费在线观看| 中文字幕亚洲无线码a| 免费观看日韩av| 97se亚洲| 神马午夜在线视频| 毛片网站大全| 成人看片app| 日韩国产小视频| 亚洲综合中文字幕在线| 日韩av快播网址| 97超碰在线播放| 国内外免费激情视频| 男人天堂网视频| 成人91视频| 久久av资源网站| 亚洲黄页网在线观看| 超碰超碰在线观看| 日韩中文字幕91| 缴情综合网五月天| 日韩乱码在线视频| 亚洲欧洲国产伦综合| 国产精品久久久久久久9999 | 欧美日韩高清一区二区不卡| 欧美疯狂xxxx大交乱88av| 综合久久国产| 黄色国产精品视频| 国模吧精品人体gogo| 日韩福利视频一区| 亚洲日产国产精品| 丁香婷婷综合激情五月色| 婷婷成人激情在线网| 人人爽久久涩噜噜噜网站| 一区二区三区四区国产|