WordPress減肥記:壓縮JavaScript檔的大小

最近幾個月虛擬主機的流量一直破表,2009年11日時使用量91%時,趕緊把放在網站裡的圖檔都改到外部網站,好不容易讓流量降到72%,沒想到最近幾個月都超出每個月30GB的流量限制。因為智邦是採用超量自動扣除可用天數的作法,因此沒有無法連線的壓力,拖到今天開始著手減肥,首先列出佔用頻寬的「大用戶」出來。

▼最近幾個月的流量統計

volume

我由網頁紀錄分析列出昨天的要求(網頁Request)報表,發覺WordPress使用的幾個JavaScript檔吃掉不少流量:/wp-includes/js/jquery/jquery.jsp佔了傳輸量的16%,/wp-includes/js/prototype.js則佔了約12%。好像從WordPress 2.8開始,WordPress就使用了這幾個常見的JavaScript Framework,如果把這些.js檔拿掉的話,又會造成系統運作異常(例如刪掉prototype.js的話,後台的Widgets設定就會完全無法操作),更糟的是像prototype.js使用的是完整的原始檔,一個檔就是125K!

▼網頁要求統計報表

request-1 request-2

減肥的第一步是把prototype.js壓縮變小,由這裡下載YUI Compressor來壓縮,由125K降成71K,把縮小後的prototype.min.js複製回WordPress的wp-includes/js資料夾,檔名仍為prototype.js:

cd build
rem copy prototype.js to yuicompressor-2.4.2/build
java -jar yuicompressor-2.4.2.jar prototype.js > prototype.min.js
rem copy prototype.min.js YOUR_WORDPRESS\wp-includes\js\prototype.js

接著再把WordPress使用的內建jquery.js檔換成Google CDN的檔案:

  • 編輯wp-includes/scripts-loader.php
  • 修改jquery.js檔案:
    //$scripts->add( 'jquery', '/wp-includes/js/jquery/jquery.js', false, '1.3.2');
    $scripts->add( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js', false, '1.3.2');
    
  • 將修改儲存起來並更新回虛擬主機

先修改這兩個,觀察明天的流量,希望流量會降低些。

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

6 個回應

  1. 关注Java表示:

    哎 和我的一样 整天想着如何把大文件转移出去。你这边的jquery.js 完全可以改成引用外部网站的jquery.js.
    prototype.js暂时还没找到哪调用的。所以今天上网搜 搜到了你的网站。哎。同是天涯沦落人啊。
    我网站里的图片啊 css,js文件 swf文件全部引用的外部网站的。

  2. m.m.表示:

    謝謝分享!!
    不過在弟的 WP3.0 修改用GOOGLE 的 JQUERY 後..
    發現原 WP PANEL / POST TAGS 會出現無法使用的狀況!!
    以上..

    • 簡睿表示:

      WordPress 3好像使用jQuery 1.4.2了? 文中範例使用的是1.3.2,改成1.4.2應該是OK的。本網站就是WordPress 3,一切正常哩。

      • m.m.表示:

        ㄟ… 這版號我也有改哩.. ><
        莫非是其它的 PLUGIN 沖到了..
        回家再試試好了.. 謝謝!!

        • 簡睿表示:

          @m.m.: 我又測試了一次,原先網站裡的jquery.js傳輸量是27K,改用Google的jquery.min.js後,傳輸量變成24K,雖然只有區區3K,不過也是積少成多。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *