うちのサイトを構成してるファイル群を見ると、一番大きなファイルは画像ファイルではなく、prototype.js
だった。なんと123.17KBもあるのだ。Webalizerの統計によると、サイト全体の転送量の10%を占める。
こぶたのラッパ : 世界の片隅で.jgzと言ってみる
http://smil.exblog.jp/4650470/
早速、生のprototype.js
とgzip圧縮したprototype.jgz
を用意した。prototype.js
のバージョンは1.6.0.2だ。
$ cp prototype.js prototype.tmp $ gzip prototype.tmp $ mv prototype.tmp.gz prototype.jgz $ ll prototype.* -rw-r--r--@ 1 delphinus staff 29166 2 19 12:29 prototype.jgz -rw-r--r--@ 1 delphinus staff 126132 3 10 2008 prototype.js
100KB
近く削減できた。後は上のリンクにある通り、Apacheの設定ファイルに以下の記述を追加1。
NameVirtualHost *:80 RewriteEngine on RewriteCond %{HTTP_USER_AGENT} ".*Safari.*" [OR] RewriteCond %{HTTP:Accept-Encoding} !gzip RewriteRule (.*)\.jgz$ $1\.js [L] AddType "text/javascript;charset=UTF-8" .jgz AddEncoding gzip .jgz
Apacheを再起動すると、確かにprototype.jgz
の方が読み込まれている。
prototype.js
の次はmt.js
とeffects.js
が気になってきた。でもこれ以上はきりがないかな。
- リンクに書かれている、「Safariがgzip圧縮したJavascriptファイルを読み込めない問題」はうちの環境では確認できなかった。その対策である、コードの3〜5行目を除いた状態でも、問題なく閲覧ができたのだ。昔のバージョンのみで起こる問題だったのだろうか? ↩