進行優化前,關鍵是剖析當前的web效能,找到效能瓶頸,從而確定最需改進的地方;如果精力有限,首先將精力放在能明顯提公升效能的改進點上;
《高效能**建設指南》提出了乙個效能**法則:
由於本文將實施乙個完整的優化流程,所以,我們還是從後台開始;
案例說明:
2個js、乙個頁頭、乙個頁尾;3個css;
型別:部落格類站點;後台邏輯簡單;首頁不到10個sql查詢;
首頁html文件52kb;
第一步:後台優化,啟用頁面快取;
實驗站點首頁後台邏輯並不複雜,不超過10個sql查詢,通過檢視時間線,本站在獲取html文件時,花費的時間不到總響應時間的20%,優化之前沒有使用快取,所有的資料都是從資料庫讀取,這裡,我們使用靜態頁面快取,將首頁整個頁面完全的存放在快取中(關於yii靜態頁面快取的使用,參考這裡);
通過檢視html文件的生成時間來檢測優化效果;
首位元組時間為376ms;html生成的時間大大縮短,後台時間減少了一倍。
優化前:
優化後:
第二步,dns網域名稱解析加速:
dns解析是使用者訪問站點的第一步,在此之前,你的**無法做任何事情;
站點的dns解析時間不應該超過500ms,如果站點原始dns解析時間過長,就該考慮考慮使用第三方解析加速服務;
實驗站點的原始dns解析較慢,平均耗時1017ms,算是非常長的;對於dns加速,可以使用dns網域名稱解析加速服務,本站點採用的國內的一款免費dns加速服務dnspod,效果還不錯,使用後平均耗時降到370ms;
加速前測試:
使用dns網域名稱解析服務
之後的測試:
第三步:使用cdn加速;
注:個人建議,啟用cdn最好放在最後一步,等將站點本身的優化都做完了之後,再啟用cdn可以明顯的看到優化效果。(開啟cdn後,由於有cdn快取的原因,觀測站點的本身的優化就不是很方便了);
第四步,採用多台伺服器提高並行載入量:
第五步,合併指令碼和樣式表;
)。如果使用的yii框架,更有yii整合版(
minscript extension
),簡單幾步的配置,就自動將頁面所有的js和css檔案合併; 關於
minscript extension
的使用,請參考:
第六步,壓縮css/js/html/xml;
不同的web伺服器設定方式有所差別,本站使用的linux/apache,
在web根目錄下的.htaccess檔案中新增以下**即可:
#set compress
addoutputfilter deflate html xml php js css
通過firefox工具可看到,壓縮前,html文件的大小是25kb;合併後的js大小為138kb;
壓縮後,html文件大小為6.2kb。js大小為39.8kb;減少2/3的傳輸時間;
第六步,最大化的減少http請求;
新增expires頭, 啟用靜態內容快取,將jpg、gif等檔案快取;
方法也是在.htaccess中新增:
# image and flash content caching for one month
header set cache-control 「max-age=2592360″
結論
本次優化主要使用的是前端優化,其中大部分規則來自於這本書的指導《高效能**建設指南
》;如果你的web前端部分還沒有充分優化,強烈建議讀讀這本書;
這是一本你只需畫上三小時就能看完,但收穫價值遠遠大於付出的一本書。
WEB站點效能優化實踐
第一步 後台優化,啟用頁面快取 實驗站點首頁後台邏輯並不複雜,不超過10個sql查詢,通過檢視時間線,本站在獲取html文件時,花費的時間不到總響應時間的20 優化之前沒有使用快取,所有的資料都是從資料庫讀取,這裡,我們使用靜態頁面快取,將首頁整個頁面完全的存放在快取中 關於yii靜態頁面快取的使用...
Web前端效能優化 如何提高頁面載入速度
最近參加了兩次前端面試,都提到了頁面優化的問題,所以做個記錄吧!字型圖示 在可以大量使用字型圖示的地方我們可以盡可能使用字型圖示,字型圖示可以減少很多的使用,從而減少http請求,字型圖示還可以通過css來設定顏色 大小等樣式。將樣式表放在頭部對於實際頁面載入的時間並不能造成太大影響,但是這會減少頁...
Web站點優化
許多 web站點在初建時,由於需求不明確,需求變化太頻繁,以及追求進度等諸多原因,第一版的站點多是凌亂的,難以維護和管理的。為此在站點進入穩定維護期的時候,進行優化是十分有必要的。選擇在進入穩定維護期後進行優化,是因為這時需求已經基本明確,需求變化不會太嚴重,又有 既有站點 的經驗與教訓可供參考,而...