CakePHP:缓存不起作用

时间:2012-09-07 21:08:12

标签: cakephp caching

我遇到以下问题:我的cakephp应用程序没有正确处理缓存。正如google中的每个结果所示,我在模型中创建了一个函数来手动删除缓存:

public function afterSave($created) {
    Cache::clear();
    clearCache();
}

不幸的是,这无所事事。不删除任何东西,我仍然有问题。

如果我没有正确解释自己,我会举例说明会发生什么:

我使用浏览器访问显示数据库中最后5条记录列表的页面。然后我去添加另一条记录。我回到显示最后5页的页面,信息未更新。它使用缓存并返回过时的信息。如果我按F5,那么他的页面会重新加载,我会看到最后5个记录。

就是这样,我不知道该怎么做。整个应用就像垃圾一样,因为你做了一些事情,除非你用F5刷新页面,否则它永远不会出现,这当然是用户不知道的,导致他们认为“实际上没有添加”。

3 个答案:

答案 0 :(得分:1)

Cache::clear()只会清除已过期的条目。

试试Cache::clear(FALSE)。如果你有CakePHP 2.x就可以使用。

答案 1 :(得分:0)

我这样做是为了解决这个问题:在控制器中,在beforefilter函数里面我做了一个检查,如果动作是我禁用缓存的话。

您选择的操作不会有浏览器缓存。

function beforeFilter(){
    if ($this->action == 'youraction'){
       $this->disableCache();
    }
}

答案 2 :(得分:0)

使用缓存需要大量的思考,在何处使用。如果您的更新频繁,请不要在那里使用缓存。

我们使用数据很少改变的缓存,那时它是双赢的局面。

缓存::清除($ check,$ config ='默认')

销毁缓存配置的所有缓存值。

cakephp Caching