Codeigniter-page-caching

提供:Dev Guides
移動先:案内検索

CodeIgniter-ページキャッシング

ページをキャッシュすると、ページの読み込み速度が向上します。 ページがキャッシュされている場合、完全にレンダリングされた状態で保存されます。 次回、サーバーがキャッシュされたページのリクエストを取得すると、リクエストされたブラウザに直接送信されます。

キャッシュされたファイルは application/cache フォルダーに保存されます。 キャッシュはページごとに有効にできます。 キャッシュを有効にしながら、キャッシュされたフォルダーに保持する必要があるまでの時間を設定する必要があり、それ以降は自動的に削除されます。

キャッシュを有効にする

コントローラのいずれかの方法で次の行を実行すると、キャッシュを有効にできます。

$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* の *routes.php* ファイルを変更して、上記のコントローラーのルートを追加し、ファイルの最後に次の行を追加します。
$route['cachecontroller'] = 'Cache_controller';
$route['cachecontroller/delete'] = 'Cache_controller/delete_file_cache';

ブラウザーに次のURLを入力して例を実行します。

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

上記のURLにアクセスすると、このためのキャッシュファイルが application/cache フォルダーに作成されることがわかります。 ファイルを削除するには、次のURLにアクセスしてください。

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