【问题标题】:How to clear cache in Controller CakePHP 2.x?如何清除 Controller CakePHP 2.x 中的缓存?
【发布时间】:2012-11-09 06:59:22
【问题描述】:

我在一个物业网站上工作,用户在该网站上创建列表,然后为了保存它,我们要求他通过 Facebook 进行连接。目前它工作得很好但是,当我创建另一个属性时(比如用户没有登录),后来我只是回到创建属性的页面,然后通过 facebook 连接.. 它确实登录了用户但是,没有创建属性.. 我尝试了各种方法,后来我发现,一旦我清除浏览器缓存,它就会创建属性。

那么,我的问题是,如何使用 CakePHP 2.x 清除浏览器中的缓存?

另外,我试过了:

纯 HTML:

<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>

但是,它没有帮助。有没有办法通过 CakePHP 本身来做到这一点?还是需要解决 Facebook 问题?

请指教。

PS:clearCache() does not work我不知道为什么。

【问题讨论】:

  • clearCache 会影响服务器端的缓存,因此它对客户端没有任何作用。让客户端缓存按自己的意愿运行更多的是发送正确的 HTTP 响应标头,并另外处理客户端请求以检查资源是否仍然有效。但我没有从你的问题中得到,实际问题在哪里——我看不到,你试图创建什么样的“属性”以及缓存如何影响它,以及 FB 如何登录开始发挥作用。
  • 感谢@CBroe 的回答。我明白这一点,但是,我发现显示 2 个控制器和关联的模型文件并不明智,因为正如我所说,一旦我清除客户端缓存并再次单击,它就可以工作了!因此,下拉到更清晰的问题:如何清除浏览器上的缓存 - 蛋糕样式(首选)。
  • 嗯,这很有帮助,只有当我有时间进一步了解它时:(你能指出任何具体的事情吗?...拜托?

标签: php facebook cakephp cakephp-2.0 browser-cache


【解决方案1】:

除非您确实是使用浏览器的人,否则您无法清除浏览器的缓存。 (例如File-&gt;Options-&gt;Clear Cache

您所说的只是告诉浏览器首先不要缓存您的页面 - 看来您已经知道该怎么做了。

但是一旦被缓存,它就会被他们的浏览器缓存,而不是你的代码。允许您删除用户缓存将是一个安全问题并且很容易被滥用。

【讨论】:

    【解决方案2】:

    您可以使用CakeResponse::disableCache()

    Example:
    
     <?php
            public function search() {
            // do something.
                $this->response->disableCache();
           }
    

    【讨论】:

    • 没有帮助。实际上它是在响应时禁用蛋糕缓存。缓存来自FB...
    • OP:“所以,我的问题是,如何使用 CakePHP 2.x 清除浏览器中的缓存?” - 答案是首先不使用缓存?要么这个答案是错误的,要么这个问题实际上不是问题。
    猜你喜欢
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 2019-01-28
    • 2014-05-23
    • 2016-05-04
    • 1970-01-01
    • 2013-03-26
    • 2012-02-24
    相关资源
    最近更新 更多