+ +
+

Web Page Caching

+

CodeIgniter lets you cache your pages in order to achieve maximum +performance.

+

Although CodeIgniter is quite fast, the amount of dynamic information +you display in your pages will correlate directly to the server +resources, memory, and processing cycles utilized, which affect your +page load speeds. By caching your pages, since they are saved in their +fully rendered state, you can achieve performance that nears that of +static web pages.

+
+

How Does Caching Work?

+

Caching can be enabled on a per-page basis, and you can set the length +of time that a page should remain cached before being refreshed. When a +page is loaded for the first time, the cache file will be written to +your application/cache folder. On subsequent page loads the cache file +will be retrieved and sent to the requesting user’s browser. If it has +expired, it will be deleted and refreshed before being sent to the +browser.

+
+
+

Enabling Caching

+

To enable caching, put the following tag in any of your controller +methods:

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

Where $n is the number of minutes you wish the page to remain +cached between refreshes.

+

The above tag can go anywhere within a method. It is not affected by +the order that it appears, so place it wherever it seems most logical to +you. Once the tag is in place, your pages will begin being cached.

+
+

Important

+

Because of the way CodeIgniter stores content for output, +caching will only work if you are generating display for your +controller with a view.

+
+
+

Important

+

If you change configuration options that might affect +your output, you have to manually delete your cache files.

+
+
+

Note

+

Before the cache files can be written you must set the file +permissions on your application/cache/ directory such that +it is writable.

+
+
+
+

Deleting Caches

+

If you no longer wish to cache a file you can remove the caching tag and +it will no longer be refreshed when it expires.

+
+

Note

+

Removing the tag will not delete the cache immediately. It will +have to expire normally.

+
+

If you need to manually delete the cache, you can use the delete_cache() +method:

+
// Deletes cache for the currently requested URI
+$this->output->delete_cache();
+
+// Deletes cache for /foo/bar
+$this->output->delete_cache('/foo/bar');
+
+
+
+
+ + +