高性能建站之前端優化篇

高性能建站之前端優化篇

2011-10-25 17:50 by PHP淮北, 560 visits, 收藏編輯

前言:

這算是對前端優化的總結吧,之前零零星星總結和學習,這次做一個完整的總結。

測試網頁性能工具

⑴Page Speed:

谷歌開發的工具,網站管理員和網絡開發人員可以使用 Page Speed 來評估他們網頁的性能,並獲得有關如何改進性能的建議。

⑵yslow:

YSlow可以對網站的頁面進行分析,並告訴你爲了提高網站性能,如何基於某些規則而進行優化。

安裝方法:

安裝:yslow直接在firefox組件查找,安裝即可

Page Speed安裝,使用火狐點開http://code.google.com/speed/page-speed/download.html,點擊下載,火狐會自動安裝

使用方法:

1)pagespeed的使用

wps_clip_image-17825

這裏是如何解釋的顏色代碼分數:

· 高優先級。這些建議代表了最大的潛在的性能贏得。你應該首先解決這些項目。

· 中等優先級。這些建議可能代表較小的勝或更多的工作來實現。您應該解決這些項目的未來。

· 工作罰款或低優先級。如果顯示建議,作爲與“+”號表示,他們很可能代表未成年人勝。您應該只關注這些項目後,你處理的優先級較高的的。

· 只有信息的消息。無論這些項目不適用此頁或有一個問題,在運行測試。

關於它的使用更詳細的資料參考http://code.google.com/intl/zh-CN/speed/page-speed/docs/using_firefox.html

2)Yslow的使用

wps_clip_image-20965

視圖顯示了等級爲網頁的成績單。整個字母等級爲頁面顯示在頂部隨着全面數值的表現。這個頁面是基於22可分級的高性能網頁的規則(見性能規則)。這些規則是列在按重要性的順序,從最重要不重要。從 A 級到 F 級,A 級爲最高。更詳細的使用方法參考:http://www.yslow.net/show.php?tid=123

網站性能最佳慣例和規則

網站優化的原則是什麼呢?這裏推薦雅虎的23條網站優化軍規

雅虎的卓越性能團隊已經確定了23個軍規:

1. 減少HTTP請求次數 
合併圖片、CSS、JS,改進首次訪問用戶等待時間。 
2. 使用CDN 
就近緩存==>智能路由==>負載均衡==>WSA全站動態加速 
3. 避免空的src和href 
當link標籤的href屬性爲空、script標籤的src屬性爲空的時候,瀏覽器渲染的時候會把當前頁面的URL作爲它們的屬性值,從而把頁面的內容加載進來作爲它們的值。測試 
4. 爲文件頭指定Expires 
使內容具有緩存性。避免了接下來的頁面訪問中不必要的HTTP請求。 
5. 使用gzip壓縮內容 
壓縮任何一個文本類型的響應,包括XML和JSON,都是值得的。舊文章 
6. 把CSS放到頂部 
7. 把JS放到底部 
防止js加載對之後資源造成阻塞。 
8. 避免使用CSS表達式 
9. 將CSS和JS放到外部文件中 
目的是緩存,但有時候爲了減少請求,也會直接寫到頁面裏,需根據PV和IP的比例權衡。 
10. 權衡DNS查找次數 
減少主機名可以節省響應時間。但同時,需要注意,減少主機會減少頁面中並行下載的數量。 
IE瀏覽器在同一時刻只能從同一域名下載兩個文件。當在一個頁面顯示多張圖片時,IE 用戶的圖片下載速度就會受到影響。所以新浪會搞N個二級域名來放圖片。 
11. 精簡CSS和JS 
12. 避免跳轉 
同域:注意避免反斜槓 “/” 的跳轉; 
跨域:使用Alias或者mod_rewirte建立CNAME(保存域名與域名之間關係的DNS記錄) 
13. 刪除重複的JS和CSS 
重複調用腳本,除了增加額外的HTTP請求外,多次運算也會浪費時間。在IE和Firefox中不管腳本是否可緩存,它們都存在重複運算JavaScript的問題。 
14. 配置ETags 
它用來判斷瀏覽器緩存裏的元素是否和原來服務器上的一致。比last-modified date更具有彈性,例如某個文件在1秒內修改了10次,Etag可以綜合Inode(文件的索引節點(inode)數),MTime(修改時間)和Size來精準的進行判斷,避開UNIX記錄MTime只能精確到秒的問題。 服務器集羣使用,可取後兩個參數。使用ETags減少Web應用帶寬和負載 
15. 可緩存的AJAX 
“異步”並不意味着“即時”:Ajax並不能保證用戶不會在等待異步的JavaScript和XML響應上花費時間。 
16. 使用GET來完成AJAX請求 
當使用XMLHttpRequest時,瀏覽器中的POST方法是一個“兩步走”的過程:首先發送文件頭,然後才發送數據。因此使用GET獲取數據時更加有意義。 
17. 減少DOM元素數量 
是否存在一個是更貼切的標籤可以使用?人生不僅僅是DIV+CSS 
18. 避免404 
有些站點把404錯誤響應頁面改爲“你是不是要找***”,這雖然改進了用戶體驗但是同樣也會浪費服務器資源(如數據庫等)。最糟糕的情況是指向外部 JavaScript的鏈接出現問題並返回404代碼。首先,這種加載會破壞並行加載;其次瀏覽器會把試圖在返回的404響應內容中找到可能有用的部分當作JavaScript代碼來執行。 
19. 減少Cookie的大小 
20. 使用無cookie的域 
比如圖片 CSS 等,Yahoo! 的靜態文件都在 yimg.com 上,客戶端請求靜態文件的時候,減少了 Cookie 的反覆傳輸對主域名 (yahoo.com) 的影響。 
21. 不要使用濾鏡 
png24的在IE6半透明那種東西,別亂使,淡定的切成PNG8+jpg 
22. 不要在HTML中縮放圖片 
23. 縮小favicon.ico並緩存

比較牛逼和權威的解釋資料

關於這個些規定,前人對的最權威最詳細的解釋Best Practices for Speeding Up Your Web SiteWeb Performance Best Practices

百度的泛體驗中心也有一篇針對其中加載部分的優化文章:http://www.baiduux.com/blog/2011/02/15/browser-loading/

**************************************上面三篇文章看完基本上頁面優化就沒有什麼難點了。

解決問題

通過上面的工具測試,可以檢查出網頁前端的以小額問題,而針對問題就需要你一個個解決,下面是我解決我網站存在問題的一個記錄,大家可以權作參考《網站優化--讓你的網頁飛起來

 

另外一些問題

上面的全部做完是否就可以上線了呢?這裏還有一些小問題需要注意:

  • 用了Google分析等統計工具了嗎?(國內可以使用百度統計或cnzz統計)

你應該跟蹤每個頁面的訪問情況,哪些受歡迎,哪些掙得錢多,下面是我使用百度統計的一個頁面熱力圖:通過熱力點可以分析出用戶習慣點擊頁面那些地方!

QQ截圖20111025154728

  • 有網站地圖(sitemap.xml)文件嗎?

搜索引擎可以發現網站所有頁面,但網站地圖可以給搜索引擎指路,並告訴它們頁面的權重,下面是博客園的網站地圖

QQ截圖20111025144235

在多個瀏覽器下測試過嗎?

你可以通過browsershots.org檢查你的網站是否在所有瀏覽器下都順眼。

 

這裏有一篇文章總結的小問題很好,大家可以看一下:網站上線之前需要檢查的13個問題

 

網站實時監控

國外用戶可以使用Siteuptime.com/Pingdom.com,國內用戶可以使用監控寶,下面是我的監控:

現在監控寶又支持服務器性能的監控和webserver的監控以及用戶體驗的跟蹤,如下面截圖:

 

QQ截圖20111025143137 

支持多種監控和多種類型,每15分鐘監控一次.實時幫助你監控自己的網站。

總結

關於網頁前端優化總結包括:網頁性能測試工具,前端優化原則,解決辦法,13個需要注意的小問題,最後就是網站的實時監控,保證你的網站正常!

知識共享許可協議本文基於署名-非商業性使用 3.0許可協議發佈,歡迎轉載,演繹,但是必須保留本文的署名PHP淮北(包含鏈接),且不得用於商業目的。如您有任何疑問或者授權方面的協商,請與我聯繫

發佈了199 篇原創文章 · 獲贊 8 · 訪問量 88萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章