万象时代LOGO

新闻资讯

News

CodeIgniter3中关于页面缓存的生成与删除

DATE:2017-09-27 已浏览
463
在稍微复杂的项目中,CI框架通常会用到页面的缓存,那么在实际中需要注意的是创建和删除页面会有对应的方法可寻,下面我们就来介绍一下。

创建缓存页面:
一般情况,CI的页面缓存只需要再控制里面加上:

$this->output->cache(1);   //表示缓存一分钟

即可!
CodeIgniter框架会自动在缓存文件夹创建一个页面缓存文件,一分钟之后会从新生成一次,覆盖原来的缓存文件,没有则创建缓存文件。

需要注意的是,对缓存来说,页面/ceshi/huancun/index 和 /ceshi/huancun 是两个不同的页面,会生成两个缓存。


删除缓存页面
删除缓存页面的方法是:

$this->output->delete_cache('/ceshi/huancun/index');

可以看出,只需要将完整的页面地址给到方法即可删除对应的缓存页面文件。

需要注意的是,删除缓存页面的方法,如果放在的要删除该页面对应的控制器里面,则删除缓存页面的方法无效,必须是非该删除页面的才可以


另外附上修改CI生成缓存的核心文件
在我实际的项目中,以后时候需要对页面缓存做二次操作,我们可以简化CI生成的方式,找到
systemcoreOutput.php
1、在第653行将:

$uri = $CFG->item('base_url').$CFG->item('index_page').$URI->uri_string;

修改为:

$uri = $URI->uri_string;

2、在第555行将:

$uri = $CI->config->item('base_url').$CI->config->item('index_page').$CI->uri->uri_string();

修改为:

$uri = $CI->uri->uri_string();

3、在第759行将:

$cache_path .= md5($CI->config->item('base_url').$CI->config->item('index_page').ltrim($uri, '/'));

修改为:

$cache_path .= md5(ltrim($uri, '/'));

这样,以后如果要对缓存操作,想知道缓存文件的名称只需要MD5($this->uri->uri_string())即可!