規則1:減小HTTP請求css
咱們只有20%的時間花在所請求的HTML頁面上,剩下的80%是發生在瀏覽器前端,特別是頁面和頁面中各類元素(圖片、CSS、Javascript、 flash…)的下載之上。前端
圖片技術,CSSsprite,內聯圖片和腳本,樣式表的合併,這些技術既能夠減小HTTP請求,又能夠避免在性能和設計之間進行艱難的選擇。web
規則2:使用內容發佈網絡apache
內容發佈網絡(CDN)是一組分佈在多個不一樣地理位置的web服務器,用於更加有效的向用戶發佈內容。瀏覽器
除了縮短期以外,CDN還能夠帶來其餘優點。他們的服務包括備份,擴展存儲能力和進行緩存。CDN還有助於緩和web流量峯值壓力,好比在獲取天氣或股市新聞,瀏覽流行的體育或娛樂事件時。緩存
規則3:增長Expires header服務器
如今的WEB頁面都包含了大量的組件,而且其數量在不斷增加,頁面的初訪者會進行不少的HTTP請求,但經過使用一個長久的Expires頭,讓這些組件被緩存,這會在後續的頁面瀏覽中避免沒必要要的HTTP請求。長久的Expires頭經常使用於圖片,但應該用在全部的組件上,包括腳本,樣式表。網絡
規則4:壓縮組件性能
若是http產生的響應包很小,傳輸時間就會不多,由於只須要很小的包從服務器傳遞到客戶端。壓縮響應包,並由此減小網絡的響應時間,這是減小頁面大小的最簡單的技術,但影響是最大的。設計
規則5:將樣式表放在頂部
規則6:將腳本放在底部
規則7:避免CSS表達式
表達式的問題在於對其求職的頻率比人們指望的要高。它們不僅在頁面呈現和大小改變時求值,當頁面滾動,甚至用戶鼠標在頁面上移動過期都要求值。
規則8:使用外部Javascript和css
規則9:減小DNS查找
當客戶端的DNS緩存爲空時,DNS查找的數量與web頁面中惟一的主機名數量相等。也就是說,減小惟一的主機名的數量就能夠減小DNS查找的數量。減小惟一的主機名數量會潛在的減小頁面中並行下載的數量。避免DNS查找下降了響應時間,但減小並下載可能會增長響應時間。
規則10:精簡JavaScript
精簡是從代碼中移除沒必要要的字符以減小其大小,進而改善加載時間的實踐。在代碼被精簡後,全部的註釋以及沒必要要的空白字符都將被移除,這能夠改善響應時間的效率
規則11:避免重定向
除了在header中人爲的重定向以外,網頁重定向常在不經意間發生,被重定向的內容將不會使用瀏覽器的緩存。好比用戶在訪問www.xxx.com,服務器會經過301轉向到www.xxx.com/,在後面加了一個「/」。若是服務器的配置很差,這也會給服務器帶來額外的負擔。經過配置apache的 alias或使用mod_rewrite模塊等方法,能夠避免沒必要要的重定向。
規則12 :移除重複腳本
規則13:配置ETag
使用gzip來壓縮網頁中的靜態內容,可以顯著減小用戶訪問網頁時的等待時間(聽說可達到60%)。主流的web服務器都支持或提供gzip壓縮,若是使用apache服務器,只須要在配置文件中開啓 mod_gzip(apache1.x)或mod_deflate(apache2.x)便可。凡是靜態的頁面,使用gzip壓縮都可以顯著提升服務器效率並減小帶寬支出,注意圖片內容自己已是壓縮格式了,務必不要再進行壓縮。
規則14:使Ajax可緩存