缓存 - 最佳实践

时间:2012-03-19 17:08:23

标签: cakephp caching cakephp-2.0 browser-cache cache-control

我正在编写一个Web应用程序,而且我遇到了太多缓存的严重问题。如果重要的话,我会使用CakePHP 2.0。

无论如何基本上我遇到的问题是浏览器经常缓存我的app方式。例如,如果我有一个用户填写表单,然后添加一条Flash消息并将用户重定向到他们的仪表板,则Flash消息显示正常,但它会一直显示,直到我刷新页面。因此,如果我离开该页面并导航回来,则Flash消息仍然存在。这只是一个小小的刺激因素,更大的问题是页面实际上会根据用户操作而改变。

例如,在管理员方面,我可能会更新以某种方式更改其信息中心的用户状态。问题是如果没有刷新,将无法看到更新的仪表板。太麻烦了!

我的问题不是如何解决这个问题,我知道如何停止一起缓存。看起来缓存是Web应用程序性能的一个重要部分,但我不想停止一起缓存,因为我可以看到它减慢了速度。

那么在这些情况下通常会做什么?我应该阻止页面一起缓存吗?似乎是一个极端的解决方案。或者我应该用以下内容链接到我的所有页面:

http://mywebsite.com/user?t=<?php echo time(); ?>

或者还有其他我缺少的东西?任何建议表示赞赏!

1 个答案:

答案 0 :(得分:2)

这里概述的答案 - How do I completely disable caching in Cakephp? - 是否有效?

修复flash消息问题很难 - 因为flash消息是输出HTML的一部分,你无法在后退按钮事件中摆脱它。

对于仪表板,我建议关闭浏览器缓存......但这不会解决CakePHP的任何内置缓存。

听起来你需要的是一些只在有更新的地方使缓存失效的方法 - 你可以在add()/ edit()方法中添加一个方法,以便在成功的save()事件后完全删除缓存 - 这似乎是唯一适用于您案件的万无一失的方法。