这可能是我的错误之处,但无论如何,我使用了一个内置函数的无脂肪框架,将多个css/js缩小到一个文件中,我认为这将有利于优化,但结果恰恰相反。如果我单独保存js文件(它们位于html的末尾),那么添加的总大小大约为364 in,并且似乎在1.5秒内并行加载。但是,如果我尝试加载合并版本,那么单个文件的大小大约为343 to,但是加载大约需要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服务器。
发布于 2014-03-14 19:36:20
好像引擎每次都在发火。我敢打赌,您只需设置缓存- 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('CACHE','memcache=192.168.72.72:11212')。
发布于 2014-03-14 19:33:26
每次加载页面时,都会使这些文件变得更小。显然,这需要时间。
考虑缩小一次,然后只链接到该文件。
https://stackoverflow.com/questions/22414112
复制相似问题