Codeigniter缓存?

4
我正在尝试提升网站速度,因为我希望它能够尽可能快地加载。但是我在缓存方面遇到了一些麻烦。我正在尝试使用这个,但它似乎会缓存整个页面,而我的内容变化比较大。请问我是否可以仅缓存某些视图,例如页眉、页脚以及主页这些不会改变的部分?
3个回答

4
CI缓存的目的是减少数据库查询、耗时的PHP计算等。基本上,它会从您的控制器(以及它调用的所有视图)中呈现一个纯HTML页面。所以,除非您从数据库或任何动态和沉重的地方拉取它们的数据,否则它不会真正加速您的页眉和页脚......但是除非您明确禁用缓存,否则任何现代浏览器都会为您缓存它。
因此,CI缓存只允许缓存完整页面,而不是单独的部分。当然,还有其他方法可以实现您想要的效果,例如将页头和页脚制作成独立的控制器,将缓存放入其中,并通过AJAX调用它们......但我不确定这是否值得。

抱歉稍微偏离一下话题。CI默认开启缓存吗? - Dr3am3rz
1
哦,已经过去7年了...但是缓存通常默认关闭:https://codeigniter.com/user_guide/general/caching.html - Shomz
谢谢您的回复。很抱歉我忘记提到我在询问CodeIgniter 4。我猜所有版本默认都会关闭,对吗? - Dr3am3rz
是的,看起来它们都遵循相同的模式,所以对于CI4也应该关闭。顺便说一下,我上面发送给你的链接是针对CI4的。 - Shomz
没问题!技术上,您可以通过监视缓存目录中发生的情况来检查缓存是否开启。祝你好运! - Shomz

2

0
有点晚了,但你看过数据库缓存了吗?很多网页延迟都可能是由于繁重的数据库查询引起的。将结果缓存可以打开动态视图。
这对于会话管理非常有帮助。
$this->db->cache_on();

将此代码放入您的模型中,而不是控制器中。同时确保您的应用程序目录中有一个可写的 db-cache 文件夹。


是的,那就是我链接的文档。我的问题是我不想缓存整个页面,而是 CSS 文件和 jQuery 文件,因为页面上的内容经常变化。 - zazvorniki
你是否正在动态地创建CSS和JS文件?通常它们是静态文件,不需要缓存。 - Chris
动态是什么意思?我有这些表格并且在头部使用它们,将它们缓存起来可以让网站在用户端运行更快,这是一个好的实践。 - zazvorniki
我认为我们在考虑不同类型的缓存。 :-) CI只是生成静态文件以提供服务,CSS和JS已经是静态的了。这个线程有帮助吗?https://dev59.com/53E85IYBdhLWcg3w8IQ4 - Chris
我实际上在发布问题几天后解决了这个问题。 :) 我找到了一个插件,可以在页面加载时进行缩小,并同时将它们缓存到用户的计算机中。 :) - zazvorniki
1
@zazvorniki 默认情况下,浏览器在第一次加载后会缓存所有(外部)CSS和JavaScript文件。 顺便问一下,你用的是什么插件? - Bangash

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接