网页缓存

CodeIgniter 允许你缓存网页以达到最大性能。

虽然 CodeIgniter 很快,但你在页面上显示的动态信息量将直接关联到服务器资源、内存和处理周期的利用,这会影响你的页面加载速度。通过缓存页面,由于它们以完全渲染的状态保存,你可以达到更接近静态网页的性能。

缓存是如何工作的?

缓存可以基于每个页面进行启用,你可以设置页面在刷新之前应保持缓存的时间长度。

备注

基于每页意味着基于每个 URI。从 v4.5.0 开始,请求的 HTTP 方法也被考虑在内。这意味着如果 HTTP 方法不同,相同的 URI 将分别被缓存。

当页面第一次加载时,页面将使用当前配置的缓存引擎进行缓存。在后续的页面加载中,缓存将被检索并发送到请求用户的浏览器。

如果缓存已过期,它将被删除并在发送到浏览器之前刷新。

备注

Benchmark 标签不会被缓存,所以启用缓存后你仍可以查看页面加载速度。

配置缓存

设置缓存引擎

在使用网页缓存之前,你必须通过编辑 app/Config/Cache.php 来设置缓存引擎。有关详细信息,请参阅 配置缓存

设置 $cacheQueryString

你可以使用 Config\Cache::$cacheQueryString 设置是否在生成缓存时包含查询字符串。

有效选项为:

  • false: (默认)禁用。不考虑查询字符串;对于具有相同 URI 路径但不同查询字符串的请求,返回相同的缓存。

  • true: 启用,考虑所有查询参数。请注意,这可能导致为同一页面反复生成大量缓存。

  • array: 启用,但仅考虑指定的查询参数列表。例如: ['q', 'page']

启用缓存

要启用缓存,请在任何控制器方法中放入以下标签:

<?php

$this->cachePage($n);

其中 $n 是页面在刷新之间保持缓存的 秒数

上面的标签可以放在一个方法的任何位置。它的位置不会受到影响,所以将其放在你认为最合适的位置。一旦标签就位,你的页面就会开始被缓存。

重要

如果你改变了可能影响输出的配置选项,你必须手动删除缓存。

删除缓存

如果你不再希望缓存一个页面,可以删除缓存标签,它就不会在过期时刷新。

备注

删除标签不会立即删除缓存。它必须正常过期。