PHPでClosure Compiler Service
php-closureの設定、JavaScriptの圧縮/最適化
JavaScriptを圧縮し最適化するサービス Closure Compiler Service を PHPでライブラリ化したものがphp-closure。
php-closure.phpのダウンロード
php-closure - PHP Library for the Google Closure Compiler - Google Project Hostingからたどり、 php-closure.phpをダウンロード。
PHP
// ライブラリ読み込み
require_once('php-closure.php');
$c = new PhpClosure();
// 圧縮対象のJSを指定
$c->add('js/foo.js')
->add('js/bar.js')
->add('js/baz.js')
// デバッグを消す
->hideDebugInfo()
// WHITESPACE_ONLY、SIMPLE_OPTIMIZATIONS、ADVANCED_OPTIMIZATIONSのいずれかを選択
//->whitespaceOnly()
//->simpleMode()
->advancedMode()
// キャッシュディレクトリ
->cacheDir('/tmp/js-cache/')
->write();
対象のJavaScript
$(function () {
var index = 0;
$('li').click(function() {
if (index != $('li').index(this)) {
index = $('li').index(this);
// タブの内容
$('article').hide().eq(index).fadeIn('fast');
// タブ
$('li').removeClass('selected').eq(index).addClass('selected');
}
});
});
WHITESPACE_ONLY
$(function(){var index=0;$("li").click(function(){if(index!=$("li").index(this)){index=$("li").index(this);$("article").hide().eq(index).fadeIn("fast");$("li").removeClass("selected").eq(index).addClass("selected")}})});
SIMPLE_OPTIMIZATIONS
$(function(){var a=0;$("li").click(function(){a!=$("li").index(this)&&(a=$("li").index(this),$("article").hide().eq(a).fadeIn("fast"),$("li").removeClass("selected").eq(a).addClass("selected"))})});
ADVANCED_OPTIMIZATIONS
$(function(){var a=0;$("li").click(function(){a!=$("li").index(this)&&(a=$("li").index(this),$("article").d().a(a).c("fast"),$("li").e("selected").a(a).b("selected"))})});
ADVANCED_OPTIMIZATIONS(デバッグあり)
if(window.console&&window.console.log){
window.console.log('Closure Compiler Stats:
-----------------------
Original Size: 454902
Original Gzip Size: 63104
Compressed Size: 171
Compressed Gzip Size: 127
Compile Time: 0
Generated: 2024/11/21 00:00:00 JST');
}
$(function(){var a=0;$("li").click(function(){a!=$("li").index(this)&&(a=$("li").index(this),$("article").d().a(a).c("fast"),$("li").e("selected").a(a).b("selected"))})});