Codeigniter HTML 缓存动态内容
Codeigniter HTML Caching with Dynamic Content
我有一个应用程序,我使用 ajax 来更新评论和点赞数。
我正在使用 Codeigniter 页面缓存 http://www.codeigniter.com/user_guide/general/caching.html
并设置以下代码以每 60 分钟重新创建一次缓存
$this->output->cache(60);
问题是当有人输入新评论时,数据库操作正在发生(因为 Ajax 调用),但是新插入的评论在页面刷新后消失,因为缓存 HTML 页面.如何处理缓存以及要更改的动态内容?
缓存的主要目的是在页面加载时节省服务器资源(即服务器不需要在每次加载时都获取所有动态数据)。
听起来你在使用AJAX功能,既可以提交数据,又可以同时在客户端修改网页。当用户随后刷新页面时,这将从服务器取回内容,在本例中是在发表评论之前生成的原始缓存内容,因此可以正常运行。
如果您真的需要缓存此页面,您可以考虑删除缓存,这将强制在下一次加载评论时重建缓存。在您的控制器中放置以下代码行(在接收 AJAX 数据的函数中)应该这样做:
$this->output->delete_cache('foo/bar');
我找到了解决方案。
要删除缓存文件,您需要使用以下函数
$this->output->delete_cache('CONTROLLER/FUNCTION');
注意:前后没有斜杠。
在我的案例中,我在 codeigniter 中使用了自定义路由。当用户输入 example.com 时,它被路由到示例。com/CONTROLLER/FUNCTIONNAME 以及默认登录页面。
所以我创建了一个新函数。请refer here
我有一个应用程序,我使用 ajax 来更新评论和点赞数。
我正在使用 Codeigniter 页面缓存 http://www.codeigniter.com/user_guide/general/caching.html
并设置以下代码以每 60 分钟重新创建一次缓存
$this->output->cache(60);
问题是当有人输入新评论时,数据库操作正在发生(因为 Ajax 调用),但是新插入的评论在页面刷新后消失,因为缓存 HTML 页面.如何处理缓存以及要更改的动态内容?
缓存的主要目的是在页面加载时节省服务器资源(即服务器不需要在每次加载时都获取所有动态数据)。
听起来你在使用AJAX功能,既可以提交数据,又可以同时在客户端修改网页。当用户随后刷新页面时,这将从服务器取回内容,在本例中是在发表评论之前生成的原始缓存内容,因此可以正常运行。
如果您真的需要缓存此页面,您可以考虑删除缓存,这将强制在下一次加载评论时重建缓存。在您的控制器中放置以下代码行(在接收 AJAX 数据的函数中)应该这样做:
$this->output->delete_cache('foo/bar');
我找到了解决方案。
要删除缓存文件,您需要使用以下函数
$this->output->delete_cache('CONTROLLER/FUNCTION');
注意:前后没有斜杠。
在我的案例中,我在 codeigniter 中使用了自定义路由。当用户输入 example.com 时,它被路由到示例。com/CONTROLLER/FUNCTIONNAME 以及默认登录页面。
所以我创建了一个新函数。请refer here