Codeigniter缓存 - 新帖后刷新的建议

时间:2012-05-18 19:29:40

标签: php codeigniter caching memcached outputcache

我有一个基于CI 2.1.0构建的博客类应用程序。 当我添加

$this->output->cache(5);

到我的控制器,CI正确缓存页面,并且加载速度很快。

我的问题是,如果有人对该帖子发表评论,则评论将在缓存过期后才会显示。

我想知道是否有人指出如何在每次特定页面发生更改时强制执行缓存刷新,或者是否进行了帖子编辑等等。

提前致谢。

2 个答案:

答案 0 :(得分:5)

来自CodeIgniter文档:

  

如果您不再希望缓存文件,则可以删除缓存标记   它到期时将不再刷新。注意:删除   tag不会立即删除缓存。它必须到期   一般。如果您需要先删除它,则需要手动删除   从缓存文件夹中删除它。

以编程方式删除缓存文件,您可以使用

CodeIgniter Cache Helper

此处此函数将删除缓存文件

function delete_cache($uri_string)
    {
        $CI =& get_instance();
        $path = $CI->config->item('cache_path');
        $cache_path = ($path == '') ? APPPATH.'cache/' : $path;

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

        $cache_path .= md5($uri);

        if (file_exists($cache_path))
        {
            return unlink($cache_path);
        }
        else
        {
            return TRUE;
        }
    }

答案 1 :(得分:4)

您可以扩展输出类以启用清除页面缓存。看看这里:https://github.com/EllisLab/CodeIgniter/wiki/Clear-Page-Cache