Web前端性能優(yōu)化實(shí)踐

由于水平有限,針對該網(wǎng)站所作的測試肯定存在不科學(xué)跷睦、不合理的地方,不當(dāng)之處請諒解肋演。本文僅供相關(guān)技術(shù)參考之用抑诸。

內(nèi)容再豐富的網(wǎng)站,如果慢到無法訪問也是毫無意義的爹殊;SEO做的再好的網(wǎng)站蜕乡,如果搜索蜘蛛抓不到也是白搭;UE設(shè)計(jì)的再人性化的網(wǎng)站梗夸,如果用戶連看都看不到也是空談层玲。
Web應(yīng)用性能優(yōu)化黃金法則:先優(yōu)化前端程序(front-end)的性能,因?yàn)檫@是80%或以上的最終用戶響應(yīng)時間的花費(fèi)所在。(詳情請看:雅虎網(wǎng)站前端網(wǎng)頁優(yōu)化的14條原則)

1.YSlow評級

Chrome瀏覽器的網(wǎng)絡(luò)模塊進(jìn)行人工觀察與分析辛块,難免會有效率低下畔派、分析不全面的問題。因此應(yīng)當(dāng)使用自動化的工具進(jìn)行更深入的分析润绵。

YSlow是雅虎公司開發(fā)的一個對網(wǎng)站前端性能進(jìn)行分析的插件线椰,最初作為Firefox瀏覽器的插件發(fā)布,后來也陸續(xù)有了Chrome等瀏覽器的插件尘盼。這里使用Firefox下的YSlow插件對指揮旅游首頁性能進(jìn)行分析士嚎。

在23個評級規(guī)則中,有4條未能達(dá)到A或B級(A意味著性能最優(yōu)悔叽,F(xiàn)意味著有必要進(jìn)行深入優(yōu)化),它們應(yīng)作為網(wǎng)站前端性能優(yōu)化的主要入手點(diǎn)爵嗅,分別是:

① F:減少HTTP請求次數(shù)

② C:使用內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)

③ F:添加較長的Expires頭

④ F:使用gzip壓縮組件

⑤ E:壓縮javascriptCSS

⑥ F:Use cookie-free domains娇澎,使用無cookie的域名

2.采取的前端性能優(yōu)化技術(shù)

1.使用Grunt、gulp睹晒、webpack等自動化構(gòu)建工具來壓縮合并組件趟庄。

2.服務(wù)器開啟Gzip壓縮。

3.圖片壓縮與拼接伪很、再把圖片拼接:CSS Sprites(把小圖標(biāo)合并成一張大圖);


3.頁面體積與加載時間

3.1頁面體積

瀏覽器視口分辨率:1920×746像素戚啥。圖片的優(yōu)化只是針對HTTP請求次數(shù),其前后尺寸變化不大锉试,因此暫不考慮優(yōu)化前后的差別猫十。JavaScript請求數(shù)量“*+4”表示其中4個請求來自其他域(主要是搜狗地圖服務(wù))。

優(yōu)化前后文件體積壓縮率 = 優(yōu)化后的體積÷優(yōu)化前的體積

文件壓縮之后究竟應(yīng)該多大才算合適呆盖?目前也無定論拖云,只能根據(jù)經(jīng)驗(yàn)來判斷。合并后的文件如果太大应又,則對單個文件的下載宙项、解析、執(zhí)行的耗時就越長(當(dāng)然株扛,隨著瀏覽器能力的不斷提升尤筐,這個時間相比于網(wǎng)絡(luò)傳輸時間仍是小量)。《Web性能權(quán)威指南》里提到:



谷歌PageSpeed團(tuán)隊(duì)的測試表明洞就,30~50KB(壓縮后)是每個JavaScript文件大小的合適范圍:既大道了能夠減少小文件帶來的網(wǎng)絡(luò)延遲盆繁,還能確保遞增及分層式的執(zhí)行。

3.2頁面加載時間

10Mb帶寬下旬蟋,操作系統(tǒng)Windows 8 x64改基,內(nèi)存8GB,CPU Intel i5,屏幕分辨率1366×768像素秕狰,使用Chrome瀏覽器(主版本號38)于2014-12-25 21:08至21:45稠腊,每隔1~2分鐘對網(wǎng)站主頁面/main.jsp進(jìn)行無緩存加載時間測試(每次刷新頁面之前,都先執(zhí)行清空瀏覽器緩存的操作)鸣哀;同時架忌,也對第二次加載的時間進(jìn)行了記錄,以作為有無緩存的性能對比我衬。詳細(xì)結(jié)果如圖 4所示叹放。由圖可見,經(jīng)過優(yōu)化后挠羔,頁面無緩存的情況下完全加載時間為3.31秒井仰,比優(yōu)化之前減少了一個數(shù)量級,加載速度有很明顯的提升破加。



4.總結(jié)與展望

網(wǎng)站前端性能優(yōu)化中最首要的原則是:優(yōu)先針對瓶頸進(jìn)行優(yōu)化俱恶。所謂瓶頸,乃是制約性能的最關(guān)鍵因素范舀。對于網(wǎng)站合是,其第一瓶頸為Gzip壓縮未開啟。開啟壓縮之后的瓶頸锭环,則是組件未壓縮聪全。對于中小型網(wǎng)站來說,解決了前幾個瓶頸問題辅辩,性能問題也就解決了一大半难礼。

YSlow評級仍為3個方面給出F評分:

① F:減少HTTP請求次數(shù);

② F:添加較長的Expires頭玫锋;

③ F:Use cookie-free domains鹤竭,使用無cookie的域名。

其中景醇,①是仍需繼續(xù)優(yōu)化的方面臀稚;至于②,由于使用的CDN和搜狗地圖服務(wù)對其資源并未添加Expires頭三痰,導(dǎo)致本項(xiàng)評分較低吧寺,但本域下的資源的Expires頭都已經(jīng)符號符合其評判標(biāo)準(zhǔn)了;而對于②散劫,由于目前服務(wù)器只申請了一個域名稚机,靜態(tài)資源大都從該域名下獲取,導(dǎo)致評分較低获搏。這些都是未來可以進(jìn)一步開展優(yōu)化的方面赖条。

瀏覽器執(zhí)行“每個服務(wù)端最大連接數(shù)”的限制是根據(jù)URL上的主機(jī)名,而不是解析出來的IP地址。這對那些想把內(nèi)容分配到多個域的人來說是個好消息纬乍,他們不必額外部署服務(wù)器碱茁,而是為新域建立一條CNAME記錄。CNAME僅僅是域名的一個別名仿贬。即使域名都指向同一個服務(wù)器纽竣,瀏覽器依舊會為每個主機(jī)名開放最大連接數(shù)〖肜幔——《高性能網(wǎng)站建設(shè)進(jìn)階指南》

目前很多網(wǎng)站的常見做法是分離圖片蜓氨,即讓網(wǎng)站的文本資源從域1下載的同時,讓所需的全部圖片資源從域2開始并行下載

參考文獻(xiàn)

[1]. Steve Souders. High Performance Web Sites [M].

[2]. YSlow官網(wǎng)队伟,http://yslow.org/

[3]. Grunt中文網(wǎng)穴吹,http://www.gruntjs.net/

[4]. Gulp官網(wǎng),http://www.gulpjs.com.cn/

[5]. webpack中文網(wǎng)嗜侮,http://webpackdoc.com/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末港令,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子棘钞,更是在濱河造成了極大的恐慌,老刑警劉巖干毅,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宜猜,死亡現(xiàn)場離奇詭異,居然都是意外死亡硝逢,警方通過查閱死者的電腦和手機(jī)姨拥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渠鸽,“玉大人叫乌,你說我怎么就攤上這事』崭浚” “怎么了憨奸?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長凿试。 經(jīng)常有香客問我排宰,道長,這世上最難降的妖魔是什么那婉? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任板甘,我火速辦了婚禮,結(jié)果婚禮上详炬,老公的妹妹穿的比我還像新娘盐类。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布在跳。 她就那樣靜靜地躺著枪萄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪硬毕。 梳的紋絲不亂的頭發(fā)上呻引,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天,我揣著相機(jī)與錄音吐咳,去河邊找鬼逻悠。 笑死,一個胖子當(dāng)著我的面吹牛韭脊,可吹牛的內(nèi)容都是我干的童谒。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼沪羔,長吁一口氣:“原來是場噩夢啊……” “哼饥伊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蔫饰,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤琅豆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后篓吁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茫因,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年杖剪,在試婚紗的時候發(fā)現(xiàn)自己被綠了冻押。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡盛嘿,死狀恐怖洛巢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情次兆,我是刑警寧澤稿茉,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站芥炭,受9級特大地震影響狈邑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蚤认,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一米苹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧砰琢,春花似錦蘸嘶、人聲如沸良瞧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽褥蚯。三九已至,卻和暖如春况增,著一層夾襖步出監(jiān)牢的瞬間赞庶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工澳骤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留歧强,地道東北人。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓为肮,卻偏偏與公主長得像摊册,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子颊艳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容