注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

cooljun的博客

>>静静的心里 ,都有一道最美丽的风景<<

 
 
 

日志

 
 

如何在指定的动作中加载 Yii-bootstrap 扩展  

2013-07-18 15:11:31|  分类: php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

我在使用 Yii-Bootstrap extension 时遇到了个大问题,由于预加载机制使所有的 AJAX 请求都会初始化 bootstrap。这是资源的极大浪费,尤其是使用基于 AJAX 的文件上传工具拆分大文件上传时,会初始化 bootstrap 上百次。

我最终是禁用了预加载而使用过滤器来加载bootstrap

禁用 bootstrap 预加载: /protect/config/main.php

'preload'=>array(
   //'bootstrap',
   'log'
),

创建文件: /protected/extensions/bootstrap/filters/BootstrapFilter.php

<?php
class BootstrapFilter extends CFilter
{
    protected function preFilter()
    {
        Yii::app()->getComponent("bootstrap");
        return true;
    }
}

然后在控制器中,新增 bootstrap 过滤器

public function filters()
{
    return array(
        'accessControl',
        'postOnly + delete',
        array('ext.bootstrap.filters.BootstrapFilter - delete')
    );
}

这样将会在除了 "delete" 动作的其他动作中加载 bootstrap,如果你需要对其他指定的动作禁用加载 bootstrap,使用下面的代码:

array('ext.bootstrap.filters.BootstrapFilter - delete, uploadajax')

确保你在站点的所有控制器中添加此过滤器(包括显示错误信息的控制器)

这个方法可以很容易的被添加到 Gii CRUD 生成器中,在我看来这是个更好的初始化此扩展的方法。

  评论这张
 
阅读(18)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018