缓存标题显示用户详细信息的页面

时间:2016-08-27 16:01:51

标签: php codeigniter caching

我们有一个使用CodeIgniter的网站,并使用整页缓存技术: https://www.codeigniter.com/user_guide/general/caching.html

我们遇到的问题是我们拥有(登录/注册)按钮的网站的主标题(导航),或者如果用户已登录,我们会以他/她的名字显示用户的图片,并显示下拉列表编辑个人资料并退出。

现在,缓存会缓存激活它的用户生成的信息,因此即使您已登录,也会显示该信息。

如何实现缓存页面但根据会话显示某些区域?

我理解" ajax"是实现它的一种方式,但还有另一种方式吗?一种更正确的方法吗?

1 个答案:

答案 0 :(得分:0)

您需要一个更精细的缓存系统,它可以缓存整个模板和/或内容块,无论它们有什么形式。这是框架的任务,无法通过网络服务器缓存实现,因为网络服务器/代理级别的缓存仅缓存整个页面,通常由mime类型决定。只要您拥有动态内容,缓存的网站就必须没有任何依赖于用户的内容。

正如您已经提到的,最佳解决方案是ajax。如果用户是访客,则可以展开提供缓存页面,因为这些页面不依赖于用户标识。一旦用户登录,我建议完全禁用缓存(您可以使用apache2环境变量执行此操作,例如可以根据logincookie设置)或者您提供静态,缓存的“骨架”页面在页面重新加载后加载用户内容。

或者你根本没有刷新第一页请求,并且像facebook那样按照ajax重新加载所有用户内容。

相关问题