【问题标题】:CakePHP Flash messages is not showing because of cache由于缓存,CakePHP Flash 消息未显示
【发布时间】:2014-12-29 18:20:43
【问题描述】:

更新:

问题:

Flash 消息未显示。

当我在我的应用程序中使用 Active/Deactivate/Add/Edit 功能时,应该显示但不显示 Flash 消息。

当我清除浏览器缓存时,它第一次运行良好(显示 Flash 消息)。 但现在我再次使用 Active/Deactivate/Add/Edit 没有显示 Flash 消息。 再次,当我清除浏览器缓存时,它工作正常。

我发现缓存问题。 但是我怎样才能摆脱这个缓存问题。

上一个问题:

我发现了缓存问题。

我有一个严重的问题。 CakePHP Flash 消息未显示在 Chrome、一台 PC 上的 Fire Fox 浏览器中,但相同的 Flash 消息显示在 Chrome、另一台 PC 上的 Fire Fox 浏览器中,并且 JavaScript 在两个浏览器上都无法显示。

可能是什么问题?

我检查了其他 20 台电脑,Flash 消息在两个浏览器中都可以正常工作。

【问题讨论】:

标签: php session cakephp caching


【解决方案1】:

我想你使用缓存助手。

这是他所说的CakePHP documentation

在视图中标记非缓存内容

有时您不希望缓存整个视图。例如,无论用户当前是登录还是以访客身份浏览您的网站,页面的某些部分可能看起来不同。

要指示不缓存的内容块,请将它们包装在

<!--nocache--> <!--/nocache--> 像这样:

<!--nocache-->
<?php if ($this->Session->check('User.name')): ?>
   Welcome, <?php echo h($this->Session->read('User.name')); ?>.
<?php else: ?>
  <?php echo $this->Html->link('Login', 'users/login'); ?>
<?php endif; ?>
<!--/nocache-->

在你的情况下:

<!--nocache-->
$this->Session->setFlash('My text here');
<!--/nocache-->

【讨论】:

  • 谢谢你的回答.. :)
【解决方案2】:

我的解决方案..

在 AppController 中:

function beforeRender() {
    parent::beforeRender();
    $this->response->disableCache();
}

【讨论】:

  • 这种方法排除了所有视图缓存,同样可以通过移除缓存助手来实现
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-22
  • 1970-01-01
  • 1970-01-01
  • 2017-04-09
  • 1970-01-01
相关资源
最近更新 更多