不要在CakePHP视图中缓存动态内容


Do not cache dynamic content in CakePHP views

我试图用缓存助手缓存视图。它适用于静态内容或使用<!--nocache-->{...}<!--/nocache-->的会话内容,但不适用于内部动作变量。

例如,如果我有一篇可缓存的文章和这篇文章的不可缓存的用户定义评级,我就不能使用<!--nocache-->echo $rating;<!--/nocache-->来显示这个评级,因为评级变量也将被缓存。

如果我理解正确的话,这是预期的行为。

一旦动作被缓存,所有的视图变量都被序列化,并且动作不会再次被调用(直到缓存被清除等)。

要么:不使用视图缓存,要么设置缓存过期时间更频繁。

如果你想让评级"实时"增加,那么让你的应用在每次有人修改评级时清除缓存。

你的应用至少在某些时候会受益于缓存版本。