[英]I don't understand why minifying slows things down
这可能是我的错误,但无论如何,我正在使用具有内置功能的无脂肪框架将多个css / js缩小为单个文件,我认为这对优化很有用,但事实证明相反。 如果我单独保存js文件(并且它们位于我的html的末尾),则添加的总大小大约为364kb,并且似乎在1.5秒内并行加载。 但是,如果我尝试加载组合版本,则单个文件大小约为343kb,但加载大约需要10秒。
我的缩小逻辑虽然有点不同。 首先在模板中我调用一个函数来加载文件:
<script type="text/javascript" src="{{ @BM->minify('js','js/',array(
'vendor/jQui/jquery-ui-1.10.4.custom.min.js',
'vendor/datatables/jquery.dataTables.min.js',
'vendor/bootstrap.min.js',
'vendor/smartmenus-0.9.5/jquery.smartmenus.min.js',
'vendor/smartmenus-0.9.5/addons/bootstrap/jquery.smartmenus.bootstrap.min.js',
'vendor/smartmenus-0.9.5/addons/keyboard/jquery.smartmenus.keyboard.min.js',
'plugins.js',
'main.js'
)) }}"></script>
该函数设置适当的会话变量并返回路径。
public function minify($type='',$folderpath='css/',$files=array()){
$filepaths = implode(",",$files);
$this->f3->set('SESSION.UI_'.$type,$this->themeRelFolder().'/'.$folderpath);
$this->f3->set('SESSION.ReplaceThemePath_'.$type,$this->themeRelFolder());
$this->f3->set('SESSION.m_'.$type,$filepaths);
return($this->f3->get('BASE').'/minify/'.$type);
}
路径映射到控制器,该控制器调用minify方法并吐出实际的缩小内容。
public function index($f3, $params) {
$f3->set('UI',$f3->get('SESSION.UI_'.$params['type']));
if($params['type']=='css'){
echo str_replace("<<themePath>>","../".$f3->get('SESSION.ReplaceThemePath_'.$params['type'])."/",\Web::instance()->minify($f3->get('SESSION.m_'.$params['type'])));
}else
{
echo \Web::instance()->minify($f3->get('SESSION.m_'.$params['type']));
}
}
我这样做是为了能够缩小所需模板的数量,并且无论主题内的文件夹嵌套结构如何,都能够维护文件路径。
我究竟做错了什么?
PS:我在我的本地wamp设置上测试它,而不是实际的服务器,因此加载时间明显不同于实际的Web服务器。
好像发动机每次都在重新缩小。 我敢打赌你只需要设置缓存 - http://fatfreeframework.com/web#minify :
为了获得最大性能,您可以启用F3系统缓存,F3将使用它来保存/检索文件以进行缩小并保存组合输出。 您可以查看“缓存引擎用户指南”以获取更多详细信息。
http://fatfreeframework.com/quick-reference#cache :
缓存后端。 F3可以处理Memcache模块,APC,WinCache,XCache和基于文件系统的缓存。
例如:如果您想使用memcache模块,则需要配置字符串,例如$ f3-> set('CACHE','memcache = localhost')(默认为端口11211)或$ f3-> set( '高速缓存', '记忆快取= 192.168.72.72:11212')。
每次加载页面时,您都会在运行时缩小这些文件。 显然,这需要时间。
考虑缩小一次,然后只链接到那个文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.