【问题标题】:Codeigniter caching?Codeigniter 缓存?
【发布时间】:2013-06-19 18:18:10
【问题描述】:

我正在努力使我的网站更快,因为我希望它以尽可能快的速度加载。不过,我在缓存方面遇到了一些麻烦。我试图使用this,但它似乎缓存了整个页面并且我的内容发生了很大变化。我是否可以只缓存我知道不会改变的某些视图?像页眉、页脚和主页一样。

【问题讨论】:

    标签: php codeigniter caching


    【解决方案1】:

    CI 缓存的目的是减少数据库查询的数量、任何耗时的 PHP 计算等......基本上,它会从你的控制器渲染一个纯 HTML 页面(当然还有它调用的所有视图)。因此,它不会真正加快您的页眉和页脚,除非您从数据库中提取数据或任何动态和繁重的数据......但任何现代浏览器都会为您缓存,除非您明确禁止缓存。

    因此,最重要的是,CI 缓存只允许缓存整个页面,而不能缓存单独的部分。当然,还有其他方法可以实现您想要的,例如您可以将页眉和页脚分开控制器,将缓存放入其中,然后通过 AJAX 调用它们......但我不确定这是否值得。

    【讨论】:

    • 抱歉偏离升技。 CI 上的缓存是默认开启还是关闭?
    • 哦,已经7年了……但是缓存一般默认是关闭的:codeigniter.com/user_guide/general/caching.html
    • 感谢您的回复。抱歉,我忘了提到我要的是 codeigniter 4。我猜所有版本都会默认关闭,对吧?
    • 是的,似乎它们都遵循相同的模式,因此 CI4 也应该关闭。顺便提一句。我上面发给你的链接是 CI4 的。
    • 没问题!从技术上讲,您始终可以通过监视缓存目录中发生的情况来检查缓存是否已打开。祝你好运!
    【解决方案2】:

    使用扩展是可能的

    https://github.com/philsturgeon/codeigniter-cache

    通常显示问题太大了,需要显示的数据的生成需要更长的时间,并且从缓存中受益最大。

    【讨论】:

      【解决方案3】:

      谈话有点晚了,但是你看过数据库缓存吗?许多网页延迟可能来自繁重的数据库查询。缓存结果会打开动态视图。

      这在您管理会话时很有帮助。

      $this->db->cache_on();
      

      把它放在你的模型而不是控制器中。确保你的 app 目录中也有一个可写的 db-cache 文件夹。

      【讨论】:

      • 是的,那是我链接到的文档。我的问题是我不想兑现整个页面,而是我知道的 css 文件和 jquery 文件不会改变,因为页面上的内容发生了很大变化。
      • 您是动态创建 CSS 和 JS 文件吗?通常,它们是不需要缓存的静态文件。
      • 动态是什么意思?我在那里有床单并在页眉中使用它们?缓存它们以使网站在用户端运行得更快是一种很好的做法。
      • 我认为我们正在考虑不同类型的缓存。 :-) CI 只是制作静态文件来服务,CSS 和 JS 已经是静态的。这个线程有帮助吗? stackoverflow.com/questions/2537185/…
      • @zazvorniki 浏览器默认在第一次加载后缓存所有(外部)CSS 和 JavaScript 文件。顺便说一句,你用的那个插件是什么?
      猜你喜欢
      • 1970-01-01
      • 2013-11-15
      • 2010-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多