Codeingniter是否允许缓存特定视图而不是整个网页?

时间:2017-06-14 08:10:41

标签: php html codeigniter caching

我想了解Codeigniter's Caching。我为我的应用程序启用了缓存,它开始缓存我的网页。但我的问题是它缓存整个页面而不是视图。

我的意思是我有一个加载多个视图的布局。像左侧边栏和右侧边栏。现在我想只缓存这些,因为它们对所有用户帐户都是通用的。所以我可以为其他用户显示缓存视图。但是Codeigniter会缓存整个页面,因此当其他用户登录时,会显示最后登录用户或其他用户的信息。

我尝试使用以下方法在左侧和右侧边栏缓存:

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

那么只能缓存我网页的某些部分或特定视图吗? 或者我需要应用一些逻辑,因此当不同的用户登录时,他们不会看到任何其他人的帐户信息。

我对此进行了评价question但我不理解这样再发布。

1 个答案:

答案 0 :(得分:1)

之前我没有使用CI缓存,因此从指南中复制了示例 - 但请注意加载视图的第3个参数。它使您能够返回输出。假设您创建了视图 - 使用true作为第三部分,然后只有CI可以缓存该特定元素。

$this->load->driver('cache', array('adapter' => 'apc', 'backup' => 'file'));

if ( ! $foo = $this->cache->get('foo'))
{
    echo 'Saving to the cache!<br />';
    $foo = $this->load->view('your_view',$params,true);

    // Save into the cache for 5 minutes
    $this->cache->save('foo', $foo, 300);
}

echo $foo;