當前web2.0革命風起雲湧,web2.0強調服務,而服務最基本的要求是速度快和穩定,離開這兩個談功能強大和易用性都沒有任何意義。本文介紹一些關於筆者運營一個web2.0網站的優化心得和經驗,希望能夠和大家共同探討。
Web2.0網站不同於以往以靜態信息為主的網站架構,以往的結構大體分為2層,一個是客戶端浏覽器,一個就是web服務器;而web2.0以動態和交互為主,一般是3層或者4層,在靜態信息網站的結構上的web服務器後端會增加應用服務器和數據庫。一般會把浏覽器和web服務器歸為最上一層即為web層,應用服務器為中間一層,數據庫為最底層。從優化角度來講,越上層優化獲得益處越大,優化也是從上自下而來。
這個時間就是在用戶第一次訪問網站的時候產生,解析時間會影響用戶的訪問感受,因此想要網站響應速度快,第一就是不要在DNS解析上產生問題。另外DNS的TTL時間也要考量,IE的DNS過期時間是30分鐘,TTL設置的比這個長一點就可以。另外在web服務器上使用keep-live也會減少DNS查詢次數。
盡量降低浏覽器發起請求的數量,就是說盡量能夠讓浏覽器緩存任何可以緩存的東西。這樣當用戶訪問過一次後,第二次訪問可能會使得發起的請求數趨近1或者等於1,如果是靜態的頁面則可能是0。方法包括:
把所有的樣式表文件並為1個
把所有的JS文件並成1個
圖片盡量能夠合成1張,這個跟以前不一樣,現在大多數是adsl上網,反而是大量的零碎圖片能夠影響速度
頁面采用xhtml,采用div+CSS布局,而把樣式表和xhtml文件分開,一則能夠降低xHtml文件大小,二則能夠對樣式表文件進行其他緩存處理。這裡還有個ui設計的原則,ui跟系統結構一樣,越簡潔越好,這樣整體頁面代碼會比較少,速度也會比較不錯。
JavaScript文件也最好放到Html文件外,原因同上。
a)目前大多數的浏覽器都支持gzip壓縮文件,因此為文本、靜態頁面、樣式表、JavaScript文件等可以壓縮處理的文件進行壓縮處理能夠減少內容獲取時間,一般壓縮完的大小為原大小的10-30%。這個在apache等web服務器上進行設置,筆者使用lighttpd的設置為:
server.modules = (
….
"mod_compress",
…
)
com