うちのサイトを構成してるファイル群を見ると、一番大きなファイルは画像ファイルではなく、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行目を除いた状態でも、問題なく閲覧ができたのだ。昔のバージョンのみで起こる問題だったのだろうか? ↩
