1

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

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

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

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

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

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

4

3 回答 3

1

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

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

于 2012-09-09T01:43:35.890 回答
0

我这样做是为了解决问题:在控制器中,在 beforefilter 函数中我进行了检查,如果该操作是我禁用缓存的东西。

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

function beforeFilter(){
    if ($this->action == 'youraction'){
       $this->disableCache();
    }
}
于 2012-09-08T21:28:22.617 回答
0

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

我们在数据很少变化的地方使用缓存,那是双赢的局面。

缓存::clear($check, $config = 'default')

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

cakephp缓存

于 2016-10-15T11:05:04.667 回答