首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

透过COutputCache定现整页缓存,文件缓存

2012-09-25 
通过COutputCache定现整页缓存,文件缓存1、修改在config文件加入缓存组件cache array (class sy

通过COutputCache定现整页缓存,文件缓存

1、修改在config文件加入缓存组件    'cache' => array (        'class' => 'system.caching.CFileCache'    ),2、在要做缓存的控制器里定义过滤器   我现在要定义SiteController   public function filters() {            return array (                array (                    'COutputCache + index, category, content',                    'duration' => 3600,                    'varyByParam' => array('id','page'),                )            );        }    // COutputCache 是用于处理缓存的类,如果只填'COutputCache',则该控制器里所有action都会进行缓存过滤,定义为'COutputCache+index,category,content',表示只缓存actionIndex, actionCategory, actionContent    // duration 是缓存的时间,单位是秒,上例中定义的3600即1小时    // varyByParam 是指定一系列GET参数名称列表, 使用相应的值去确定缓存内容的版本,即同一个action用于区分是不同页面的的参数,此处我以id和page来区分不同页面,若我把page参数删掉,即写成 'varyByParam' => array('id'), 则以下两个页面采用同一缓存,导致翻页无效:    //  index.php?r=site/index&id=2&page=1    //  index.php?r=site/index&id=2&page=2    // 除varyByParam以外,你还可以采用其他的条件来区分页面:    // varyByExpression:指定是否缓存内容因承指定PHP表达式的结果而变化    // varyByRoute:指定缓存内容基于请求的路由不同而变化 (controller 和 action)    // varyBySession:指定是否缓存内容. 因用户session不同而变化参考:http://www.yiiframework.com/doc/api/1.1/COutputCache      http://www.yiichina.com/api/COutputCache
?

热点排行