【发布时间】:2012-09-01 18:27:25
【问题描述】:
我遇到以下问题:我的 cakephp 应用程序没有正确处理缓存。正如谷歌的每个结果所建议的那样,我在模型中创建了一个函数来手动删除缓存:
public function afterSave($created) {
Cache::clear();
clearCache();
}
不幸的是,这无济于事。没有删除任何东西,我仍然有问题。
如果我没有正确解释自己,我将举例说明会发生什么:
我使用浏览器转到一个页面,该页面显示了我数据库中最后 5 条记录的列表。然后我去添加另一条记录。我回到显示最后 5 个的页面,并且信息没有更新。它使用缓存并返回过时的信息。如果我按 F5,那么他的页面 trully 会重新加载,我会看到 trully 的最后 5 条记录。
就是这样,我不知道该怎么办。整个应用像垃圾一样工作,因为你做了一些事情,除非你用 F5 刷新页面,否则它永远不会出现,这当然是用户不知道的,导致他们认为实际上是“没有添加任何内容”。
【问题讨论】:
-
保存后有没有查看对应缓存文件的修改日期,看是否更新了??然后按 F5??
-
我从来没有碰过缓存的东西。这是蛋糕默认处理。我这样做是为了解决问题:在控制器中,在 beforefilter 函数中我做了一个检查,如果 'action' == 'whatever' --> disableCache 它完成了这项工作。我现在选择的动作没有缓存,一切正常。
-
mmmm...这种行为听起来很少见。您应该将其作为答案发布并接受。
-
我无法回答我的问题,因为我基本上是个菜鸟(网站说)。
-
我这样做是为了解决这个问题:在控制器中,在 beforefilter 函数中我做了一个检查,如果 'action' == 'whatever' --> disableCache 它完成了这项工作。您选择的操作不会有浏览器缓存。 function beforeFilter(){ if ($this->action == 'youraction'){ $this->disableCache(); } //您的操作是您不希望/不需要浏览器缓存的操作 }