开发学院,分享开发教程和最新动态

CodeIgniter教程:页面缓存

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

  缓存文件存储在application/cache文件夹中,缓存基于URL的基础上启用。在启用缓存时,我们需要设置缓存时间,在此期间之后,它将被自动删除并重新生成。

启用缓存

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

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

  其中$n是分钟数,您希望页面在刷新之间保持缓存状态。

禁用缓存

  缓存文件过期时会被删除,但如果您想手动删除它,则必须禁用它。您可以通过执行以下行来禁用缓存。

// Deletes cache for the currently requested URI 
$this->output->delete_cache();
  
// Deletes cache for /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 Example</title> 
   </head>
   <body> 
      CodeIgniter View Example 
   </body>
</html>

  修改application/config/routes.php文件,为上述控制器添加路由,并在文件末尾添加以下行。

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

  在浏览器输入以下URL以运行实例

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

  访问上述网址后,您会看到将在application/cache 文件夹中为此创建一个缓存文件,要删除文件,请访问以下网址。

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