1 、減少頁面 HTTP 請求數量
比較直接的理解就是要減少呼叫其他頁面、檔案的數量。
A. 我們在使用 css 格式控制的時候,經常會採用 background 載入很多圖形檔案,每個 background 的影象至少產生 1 次 HTTP 請求,一般我們為了讓頁面生動活潑會大量使用 background 來載入背景圖,要改善這個狀況,可以採用 css 的 1 個有用的 background-position 屬性來載入背景圖,我們將需要頻繁載入的多個圖片合成為 1 個單獨的圖片,需要載入時,採用以下形式載入即可將這部分圖片載入的 HTTP 請求縮減為 1 個。
2
網站載入時間 網站訪問速度 網站最佳化 多使用者體驗
B. 採用 Image maps,這個方法也比較常用,只是限於同 1 個區域使用。
C.Inline images,這個方法很少見到,但對於很小很簡單的影象卻是很實用的,相關語法標準參照:tools.ietf.org/html/rfc2397 。
2 、使用 CDN(Content Delivery Network) 網路加速
現在國內做 CDN 加速業務的公司很多,簡單講,就是將您的圖片、視訊擴散到 CDN 網路所能到達之處,讓多使用者訪問時能就近下載到這些檔案,從而達到網路提速的目的,這樣做,同時能減輕您自己網站的負載。
3 、新增檔案過期或快取頭
對於同一多使用者頻繁訪問的圖片、 Js 指令碼檔案等可以在 Apache 或 Nginx 設定其緩衝 時間,例如設定 24 小時過期時間,這樣多使用者在訪問過該頁面之後再次訪問時,同一組圖片或 JS 不會再重複下載,從而減少了 HTTP 請求,多使用者訪問速度明顯有 所提升,同時伺服器負載也會下降。下面給出 nginx 配置中快取控制的 例子:
1
網站載入時間 網站訪問速度 網站最佳化 多使用者體驗
4 、伺服器開啟 gzip 壓縮
這個大家都比較瞭解,即將需要傳輸的內容壓縮後傳輸到客戶端再解壓,這樣在網路上傳輸的 資料量會大幅減小。通常在伺服器上的 Apache 、 Nginx 可以直接開啟這個設定,也可以從程式碼角度直接設定傳輸檔案頭,增加 gzip 的設定,也可以從 負載均衡裝置直接設定。不過需要留意的是,這個設定會略微增加伺服器的負擔。
5 、 css 格式定義放置在檔案頭部
這項設定對於多使用者端是慢速網路或網頁內容比較龐大的情況比較有利,可以在網頁逐步呈現的同時仍會保持格式資訊,不影響網頁美感。
6 、 Javascript 指令碼放在檔案末尾
很多 Javascript 指令碼執行效率低下,或者有的第 3 方域名指令碼出現意外無法載入, 如果將這些指令碼放置到頁面比較靠前的位置,可能會導致我們自己網站的內容載入速度下降甚至無法正常載入,所以一般將這些指令碼放置在網頁檔案末尾,一定要放 置在前面的指令碼要改用所謂的 “後載入” 方式載入,在主體網頁載入完成後再載入,防止其影響到主體網頁的載入速度。
7 、避免使用 CSS 指令碼 (CSS Expressions)
有時為了要 css 的引數動態改變,可能會採用 css expression 來實現,但這樣做得不償失,會使多使用者端瀏覽器負擔明顯加重,所以不建議這樣做,如果需要改變,可以使用 Javascript 指令碼去實現。
8 、 css 、 javascript 改由外部呼叫
如果 css 、 js 內容比較龐大,儘量不要寫到同 1 個頁面中去,改由外部載入比較妥當,因為瀏覽器本身會對 css 、 js 檔案進行快取。
9 、壓縮 Javascript 、 CSS 程式碼
一般 js 、 css 檔案中存在大量的空格、換行、註釋,這些利於閱讀,如果能夠壓縮掉,將會很有利於網路傳輸。這方面的工具也有很多,一般可以保留開發版本,利用工具生成生產版本,2 個檔案比較,一般壓縮率能達到 50% 以上,減少的資料量還是比較可觀的。
我這個部落格剛改版完成,各種程式碼還沒有進行最佳化和壓縮,目前 yslow 評級只能達到 D, 等有時間進行部分最佳化,達到 C 等級應該問題不大。