我正在尝试提升网站速度,因为我希望它能够尽可能快地加载。但是我在缓存方面遇到了一些麻烦。我正在尝试使用这个,但它似乎会缓存整个页面,而我的内容变化比较大。请问我是否可以仅缓存某些视图,例如页眉、页脚以及主页这些不会改变的部分?
CI缓存的目的是减少数据库查询、耗时的PHP计算等。基本上,它会从您的控制器(以及它调用的所有视图)中呈现一个纯HTML页面。所以,除非您从数据库或任何动态和沉重的地方拉取它们的数据,否则它不会真正加速您的页眉和页脚......但是除非您明确禁用缓存,否则任何现代浏览器都会为您缓存它。因此,CI缓存只允许缓存完整页面,而不是单独的部分。当然,还有其他方法可以实现您想要的效果,例如将页头和页脚制作成独立的控制器,将缓存放入其中,并通过AJAX调用它们......但我不确定这是否值得。
使用扩展可以实现这一点。 https://github.com/philsturgeon/codeigniter-cache 通常显示问题并不是太大的问题,而是需要显示的数据生成需要更长时间,并且从缓存中受益最多。
有点晚了,但你看过数据库缓存了吗?很多网页延迟都可能是由于繁重的数据库查询引起的。将结果缓存可以打开动态视图。这对于会话管理非常有帮助。$this->db->cache_on(); 将此代码放入您的模型中,而不是控制器中。同时确保您的应用程序目录中有一个可写的 db-cache 文件夹。