首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我不明白为什么缩小会让事情变慢

我不明白为什么缩小会让事情变慢
EN

Stack Overflow用户
提问于 2014-03-14 19:30:22
回答 2查看 706关注 0票数 1

这可能是我的错误之处,但无论如何,我使用了一个内置函数的无脂肪框架,将多个css/js缩小到一个文件中,我认为这将有利于优化,但结果恰恰相反。如果我单独保存js文件(它们位于html的末尾),那么添加的总大小大约为364 in,并且似乎在1.5秒内并行加载。但是,如果我尝试加载合并版本,那么单个文件的大小大约为343 to,但是加载大约需要10秒。

不过,我的缩小逻辑有点不同。首先,在模板中,我调用一个函数来加载文件:

代码语言:javascript
复制
<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>

该函数设置适当的会话变量并返回路径。

代码语言:javascript
复制
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方法并输出实际缩小的内容。

代码语言:javascript
复制
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服务器。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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')。

票数 2
EN

Stack Overflow用户

发布于 2014-03-14 19:33:26

每次加载页面时,都会使这些文件变得更小。显然,这需要时间。

考虑缩小一次,然后只链接到该文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22414112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档