我遇到以下问题:我的cakephp应用程序没有正确处理缓存。正如google中的每个结果所示,我在模型中创建了一个函数来手动删除缓存:
public function afterSave($created) {
Cache::clear();
clearCache();
}
不幸的是,这无所事事。不删除任何东西,我仍然有问题。
如果我没有正确解释自己,我会举例说明会发生什么:
我使用浏览器访问显示数据库中最后5条记录列表的页面。然后我去添加另一条记录。我回到显示最后5页的页面,信息未更新。它使用缓存并返回过时的信息。如果我按F5,那么他的页面会重新加载,我会看到最后5个记录。
就是这样,我不知道该怎么做。整个应用就像垃圾一样,因为你做了一些事情,除非你用F5刷新页面,否则它永远不会出现,这当然是用户不知道的,导致他们认为“实际上没有添加”。
答案 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 ='默认')
销毁缓存配置的所有缓存值。