眾所周知,減小代碼在傳輸中的大小,就能提高頁面的傳輸速度,開啟網頁也就快 了,這是基於頻寬瓶頸的理論,當然伺服器速度受到其他很多因素的影響, 有PHP代碼執行速度,資料庫訪問速度,磁碟讀寫IO速度等,無論怎樣,頻寬影響是非常大,而受中國電信抑或是中國網通還有其他的一些電信公司的制約,在 伺服器網路頻寬並不很充裕的條件下,壓縮代碼傳輸將會大大節省頻寬!
本文講述通過使用Gzip壓縮方式自動壓縮相應的代碼,在訪問者瀏覽器端會自動還原成代碼以便瀏覽器執行,至於編寫代碼時的良好風格節省空間的方法不在本文之列。
GZIP 最早由Jean-loup Gailly和Mark Adler建立,用於UNIX系統的檔案壓縮。我們在 LINUX中經常會用到尾碼為.gz的檔案,它們就是GZIP格式的。現今已經成為Internet 上使用非常普遍的一種資料壓縮格式,或者說一種檔案格式。HTTP協議上的GZIP編碼是一種用來改進WEB應用程式效能的技術。大流量的WEB網站常常 使用GZIP壓縮技術來讓使用者感受更快的速度。
首先測試一下你的網站各個頁面是否採用了Gzip壓縮,這裡有個測試載入器
目前,有兩種主流方法實現Gzip壓縮。
一、mod_deflate模組
mod_deflate 模組提供了DEFLATE輸出過濾器,允許伺服器在將輸出內容發送到用戶端以前進行壓縮(應該也是採用gzip資料格式壓縮,deflate是一種壓縮算 法)以節約頻寬。Apache 1.3.x時代使用mod_gzip模組來實現,Apache2已經內建了mod_deflate模組。
這種方法要求安裝了Apache的http伺服器軟體,並且載入了deflate模組。
使用方法:
在網頁發布目錄的.htaccess檔案中加入:
- <ifmodule mod_deflate.c>
- AddOutputFilter DEFLATE html htm xml php js css
- ifmodule>
這樣就會使得Apache在發布html,xml,php,js,css這樣的檔案時會採用Gzip方式傳輸資料,這個方法簡單,一勞永逸,但一般使用的虛擬機器主機並沒有安裝deflate模組,也不一定是Apache的,不過我們還有辦法:
二、ob_gzhandler函數
主機要求:支援PHP,PHP版本在4.0.4以上,安裝有zlib庫
對於PHP檔案傳輸中壓縮,只需在原來的 PHP 檔案首行加上
並且在結尾加上
複製時還原為正規的PHP格式。
對於js檔案,則在原來js檔案的首行加上
末尾同樣加上
然後存為abc.js.PHP這樣的檔案,並且修改指向這個所有html,PHP等檔案。
改
為
對於a.html檔案就直接改成a.PHP訪問好了,如果要保留原來的URL就 修改.htaccess 偽URL或者建立一個網頁跳轉吧,而其他的CSS等文本也就依此推算出該怎麼改了。壓縮效能說明:jQuery庫原始碼為50k左右,先寫代碼時最佳化,去除空格組合函數等使其減小至26k,再使用GZIP壓縮至14k!
再附一張其他網站的壓縮效能比較圖,圖中三種方式都是GZIP,只是執行的方法不同而已。
http://www.bkjia.com/PHPjc/478443.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/478443.htmlTechArticle眾所周知,減小代碼在傳輸中的大小,就能提高頁面的傳輸速度,開啟網頁也就快 了,這是基於頻寬瓶頸的理論,當然伺服器速度受到其他...