【问题标题】:Codeigniter caching - suggestions to refresh after new postCodeigniter 缓存 - 新帖子后刷新的建议
【发布时间】:2013-05-31 12:30:28
【问题描述】:

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

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

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

我的问题是,如果有人在该帖子上发表评论,则在缓存过期之前不会显示评论。

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

提前致谢。

【问题讨论】:

    标签: php codeigniter caching memcached outputcache


    【解决方案1】:

    来自 CodeIgniter 文档:

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

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

    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;
            }
        }
    

    【讨论】:

    • 我当然不想手动删除,因为我什至不确定哪些缓存文件指向已更新的页面 - 如何在更新时以编程方式选择性地删除该文件?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-06
      • 2020-06-10
      • 2020-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多