【发布时间】:2012-02-14 18:47:56
【问题描述】:
我正在构建一个应用程序,它使用 Flashdata 在某些操作后向用户显示消息 - 例如。 “项目成功删除”等。我还使用 CodeIgniter 的数据库查询缓存来缓存某些查询,直到我使它们无效。
编辑项目后,我将 Flashdata 消息设置为“项目已编辑”。然后我 redirect() 到 All Items 视图 - 它显示 Flashdata 消息。 但是,即使我重新加载页面,此 Flashdata 消息仍然存在。让它消失的唯一方法是清空application/cache 目录。
是否有任何明智的方法可以覆盖缓存机制以不缓存 Flashdata?我发现了这个 - http://codeigniter.com/wiki/No_Flash_Cache - 但它似乎是 CI 1.7 的一个非常古老的解决方案。无论如何我试了一下,但出于某种原因,CI 不想覆盖私有函数 _write_cache() - 它会覆盖其他所有内容就好了...... (编辑:现在意识到(除非有人告诉我否则) 只影响输出缓存 - 不影响数据库缓存)
提前致谢!
【问题讨论】:
-
确保您没有在代码中使用
$this->session->keep_flashdata('item');。 -
如果您离开页面并返回该页面,它会重新出现吗?如果不是,则可能是浏览器缓存问题。检查 Firebug/Chrome 开发工具中的 Net 选项卡,查看服务器是否正在发送 304(未更改)标头。如果是,那是你的问题,CI 没有错。
标签: php database codeigniter session caching