Php 具有动态内容的Codeigniter HTML缓存

Php 具有动态内容的Codeigniter HTML缓存,php,ajax,codeigniter,caching,Php,Ajax,Codeigniter,Caching,我有一个应用程序,使用ajax更新注释&比如计数 我正在使用Codeigniter页面缓存 并将以下代码设置为每60分钟重新创建一次缓存 $this->output->cache(60); 问题是当有人输入一个新的注释时,DB操作正在发生(因为Ajax调用),但由于缓存的HTML页面,新插入的注释在页面刷新后消失。如何处理缓存以及要更改的动态内容?缓存的主要目的是在页面加载时节省服务器资源(即,服务器不需要在每次加载时获取所有动态数据) 听起来像是在使用AJAX函数提交数据,同时在

我有一个应用程序,使用ajax更新注释&比如计数

我正在使用Codeigniter页面缓存

并将以下代码设置为每60分钟重新创建一次缓存

$this->output->cache(60);

问题是当有人输入一个新的注释时,DB操作正在发生(因为Ajax调用),但由于缓存的HTML页面,新插入的注释在页面刷新后消失。如何处理缓存以及要更改的动态内容?

缓存的主要目的是在页面加载时节省服务器资源(即,服务器不需要在每次加载时获取所有动态数据)

听起来像是在使用AJAX函数提交数据,同时在客户端修改网页。然后,当用户刷新页面时,这将从服务器取回内容,在这种情况下,是在作出注释之前生成的原始缓存内容,因此其操作完全符合它的要求

如果你有一个真正的缓存这个页面的需求,你可以考虑删除缓存,这将迫使它在下一个页面加载时被重新构建。在控制器中(在接收AJAX数据的函数中)放置以下代码行应该可以做到这一点:

$this->output->delete_cache('foo/bar');
我找到了解决办法

要删除缓存文件,需要使用以下函数

$this->output->delete_cache('CONTROLLER/FUNCTION');
注意:前后无斜杠

在我的例子中,我在codeigniter中使用自定义路由。当用户键入example.com时,它将被路由到example.com/CONTROLLER/FUNCTIONNAME和默认登录页


所以我创建了一个新函数。请告诉我什么是/foo/bar,好吗?我推了控制器/函数名,它没有被删除。@abdulrashid是的,我相信它应该是控制器/函数,但我没有亲自测试过它;我刚从CI文档中获得了这些信息,我现在将构建一个小示例进行测试,并很快让您知道。您能确认您使用的是哪个版本的CodeIgniter吗?我使用的是CI 3。我读的很好,函数在CI 2.2中不存在,但在CI 3中存在;刚刚在本地进行了测试,控制器面前的问题似乎是前面的问题。尝试更改为“foo/bar”,其中foo=控制器,bar=加载视图的函数(即,不是ajax函数)