私が多くのプロジェクトで実装した最善の解決策は、すべてのJavaScriptを最大200kbの有限ファイルに分割することです。私は常にJSを2つ(またはまれに3つ)のファイルに分割します。1つ目は、ライブラリ(jquery、zepto、swfobject、bootup ...)と「ユーザーコード」(私自身の$()。clicks ...)です。
.htaccess
フォルダ内にすべてを/js
に書き換えます。次に、コンパイラスクリプトはバージョン番号を確認し、キャッシュされたコンパイル済みスクリプトをチェックして返します。見つからない場合は、オンザフライでコンパイルし、キャッシュに入れて返します。そうすれば、jsは1時間ごとにコンパイルされ、常に縮小されます。scripts.js?version=45445
compiler.php
圧縮で節約できる1kbを気にかけてくれてうれしいです。
サンプルコードは次のとおりです。
#.htaccess
RewriteEngine on
RewriteRule ^scripts_(\d+).js(.*)$ __compress_js.php?_v=$1 [L]
そして、phpでこのようなもの
<?php
// __compress_js.php
ob_start();
include 'config.php';
$cache = FileCache::getInstance();
$cache->setPath(CACHE_PATH);
$cache_key = '_compressed_' . VERSION . '.js';
if ( ! $cache->check($cache_key, 3600)){
$js = JSMin... // array of files
$cache->write($cache_key, $js);
}
Header::js();
echo $cache->read($cache_key, 3600);
上記の解決策は、最初のヒットのみを遅くします。他のすべての人には、キャッシュされたjavascriptが提供されます。