如何節省網站流量

flowerszhong發表於2016-02-10

現在做網站,最貴的成本是什麼?當然是網路流量。CPU、記憶體和磁碟都是白菜價了,但是網路流量的價格一直高高在上。1Mbps頻寬,從單線的幾十塊錢到BGP多線的幾百塊,永遠是站長心中的痛。特別是流量的波動很大,可能平時用的不多,搞個活動,流量是平時的幾倍甚至幾十倍,雖然雲端計算技術可以及時的調整頻寬,但是費用也是不可估量的。所以,我們一定要…省…省…省頻寬啊!

第一招:開啟http壓縮

目前主流的web伺服器都已經支援gzip壓縮,可以對html、css、javascript等文字內容進行壓縮。一般情況下,開啟gzip壓縮之後能節省60%以上的流量,具體的壓縮率,我們可以通過站長之家提供的工具來識別。

第二招:在瀏覽器端生成頁面

由於HTML標準本身的問題,一個web頁面包含了非常多的使用者不可見的標籤,這些標籤的傳輸佔據了大量的頻寬。通過使用JavaScript/AJAX技術,把使用者可見的內容傳輸過來,在客戶端的瀏覽器上實時生成頁面,不單可以加快頁面下載速度,還可以有效的減輕伺服器的壓力。一般的頁面可以節省1/3以上的流量,對於表格類等重排版的頁面,流量節省可以高達80%以上。

第三招:優化JavaScript和CSS程式碼

現在的網頁,都是包含了不少的JS檔案和CSS檔案。不管是手寫的還是工具生成的JS和CSS檔案,裡面的內容包含了大量的空行,空格,註釋資訊,長的變數名稱等,可以通過工具進行優化。
JS檔案我們可以使用JSmin之類的工具進行優化,原始的JS檔案大小是2463位元組,經過壓縮之後變為1115位元組,經過http的gzip壓縮,最終變為了640位元組,整個JS檔案變為了原來的26%。
使用CSS線上壓縮工具,原始的CSS檔案大小是2289位元組,經過壓縮之後變為1753位元組,再經過http的gzip壓縮,最終變為了612位元組,整個CSS檔案大小變為了原來的27%。
雖然我們的目標是想盡辦法榨乾每一個多餘的位元組,但是JS檔案和CSS可能會要對其進行修改,因此自己需要控制好壓縮率,不要為了流量而大大增加了修改的成本。

第四招:圖片的優化

圖片應該是網站的頭號通緝犯了,網站使用的圖片不但多,而且越來越大。我們可以來看看煎蛋網首頁,共有圖片41張,總計1311KB,佔了整個頁面大小的90%。圖片優化得好,不但可以提高頁面的載入速度,提升網站的使用者體驗,而且還可以節省網站的頻寬。通過下圖我們可以看出,在不影響圖片質量下,不同檔案格式不同壓縮比下面,圖片檔案差異還是很大的,最大和最小的圖片相差6倍,如圖:

我們可以通過繪圖工具,將圖片儲存為自己需要的格式,再利用Smush.it之類的工具對圖片進行更深入的優化。同時在能使用縮圖的地方儘量使用縮圖,而不是借用瀏覽器的縮放功能。
對圖片進行延遲載入,只有當圖片滾動到可視區域時候,才動態的從後臺獲取圖片。由於不需要一次性把全部圖片取到位,因此不單網頁載入速度大大提高,還極大的提升了使用者的體驗。目前已經很多的JS庫支援了,常見的如JQuery。

第五招:巧借外部免費資源

目前雲端計算技術興起,很多網站提供了一定額度的免費流量,利用好這些免費額度,能夠給你網站減少不少成本。目前阿里雲的OSS提供了10G的免費流量,換算成300KB的圖片,可以被瀏覽3.5萬次。如果同時借用多個免費的服務,就可以節省不小的成本。

第六招:對移動裝置進行優化

目前智慧手機越來越普及,使用移動上網的份額在不斷的擴大,而目前的移動終端的螢幕大部分還不能跟PC終端相比,因此如果網頁提供的可視區域大於移動終端的顯示區域,要麼就是不可見,要麼就是被縮放了。
目前的移動裝置,大部分還是使用2G和3G的網路,下載速度是非常有限的,所以我們對移動終端的優化不但可以減小網站的網路使用頻寬,還可以有效的增強使用者體驗。雖然目前的移動終端的瀏覽器的功能已經非常強大,但是受限於裝置的計算能力和螢幕大小,因此網頁儘量不要使用大幅圖片,不要使用龐大的JS庫等。

第七招:趕上HTML5潮流

HTML5來啦!目前各大瀏覽器廠商已經相繼支援HTML5,IE6的市場份額已經不足8%,就算國內市場,也不足20%了。你可能沒有注意到一個隱藏的資料流:cookie,這個資料量不大,但是每次訪問web頁面,都是需要來回各傳送一次的。很多網站為了方便使用者輸入,增強使用者體驗,把使用者的輸入進行自動儲存,每次儲存都需要提交併重新整理頁面。網頁應用的某些資料是可以靜態快取的,這樣沒必要讓使用者每次重新整理的時候重新下載一遍。使用HTML5的本地儲存功能,把這些可以存放在本地的資料在瀏覽器端快取起來,減少每次互動的資料量,對網站的頻寬使用也會產生很大的影響的。

技術可以驅動成本的降低,但是技術的改造不是一朝一夕可以完成的。當前的最有效的降低網路頻寬費用的方式,就是使用動態的頻寬,可以根據自己的業務需要,按天甚至按小時對實際使用的網路流量進行買單。目前像阿里雲等很多雲端計算公司都提供了這種動態頻寬變更,讓站長的頻寬費用更加的合理。


相關文章