使用Yuicompressor很容易最小化scriptS。不幸的是,在php中使用exec
执行JAR时,这个过程非常缓慢。
示例(PHP):
// start with basic command
$cmd = 'java -Xmx32m -jar /bin/yuicompressor-2.4.8pre.jar -o ''/var/www/myscript.min.js'' ''/var/www/myscript.min.temp.js''';
// execute the command
exec($cmd . ' 2>&1', $ok);
大约20个文件的执行时间长达30秒!在具有8GB内存的四核服务器上。
有人知道一个更快的解决方案,可以最大限度地减少一堆脚本吗
执行时间主要取决于文件大小
让我们试试谷歌闭包编译器。
将结果缓存在文件中或使用一些扩展名(APC、Memcached)与客户端缓存头的组合也是一个好主意。如果你用filemtime()检查最后一次修改时间,你就会知道是否需要minimy。
我经常按文件使用单独的缓存,以防止大型内容的缩小,然后整体创建MD5校验和,如果自上次请求以来进行了修改,则保存新的校验和并打印出内容,否则只需使用:
header('Not Modified', true, 302);
通过这种方式,每个请求也在dev状态下进行了少量计算。我现在的项目使用ExtJS 4,它的原始大小为1.2 MB,有很多项目代码,没有任何问题,响应时间不到1秒。