CodeIgniter 页面缓存


缓存页面将提高页面的加载速度。如果页面被缓存,那么它将以完全渲染的状态被存储。下次,当服务器收到对缓存页面的请求时,它将被直接发送到被请求的浏览器。

缓存文件存储在application/cache文件夹中。缓存可以在每个页面的基础上启用。在启用缓存时,我们需要设置时间,直到它需要保留在缓存文件夹中,过了这段时间,它将被自动删除。

启用缓存


可以通过在任何控制器的方法中执行以下行来启用缓存。

$this->output->cache($n);

$n代表该页面缓存的分钟数

禁用缓存


缓存文件在过期时会被删除,但是当你想手动删除它时,你必须禁用它,你可以通过执行以下行来禁用缓存。

// 删除当前请求的 URI 的缓存
$this->output->delete_cache();
  
// 删除 /foo/bar 的缓存
$this->output->delete_cache('/foo/bar');

创建一个名为Cache_controller.php的控制器,并将其保存在application/controller/Cache_controller.php

<?php 
    class Cache_controller extends CI_Controller {
	
        public function index() {
            $this->output->cache(1);
            $this->load->view('test');
        }
		
        public function delete_file_cache() {
            $this->output->delete_cache('cachecontroller');
        }
    }
?>

创建一个名为test.php的视图文件,并将其保存在application/views/test.php

<!DOCTYPE html> 
<html lang = "en">
    <head>
        <meta charset = "utf-8">
        <title>CodeIgniter View 例子</title>
    </head>
	
    <body>
        CodeIgniter View 例子
    </body>
</html>

修改application/config/routes.php文件,并在文件末尾添加以下一行。

$route['cachecontroller'] = 'Cache_controller'; 
$route['cachecontroller/delete'] = 'Cache_controller/delete_file_cache';

将 yoursite.com 替换为你站点的域名,在浏览器中访问以下链接执行上述示例。

http://yoursite.com/index.php/cachecontroller

访问上述网址后,你会看到在application/cache文件夹中会创建一个相关的缓存文件。要删除该文件,请访问以下网址。

http://yoursite.com/index.php/cachecontroller/delete