Derek Jones | 8ede1a2 | 2011-10-05 13:34:52 -0500 | [diff] [blame] | 1 | ################ |
| 2 | Web Page Caching |
| 3 | ################ |
| 4 | |
| 5 | CodeIgniter lets you cache your pages in order to achieve maximum |
| 6 | performance. |
| 7 | |
| 8 | Although CodeIgniter is quite fast, the amount of dynamic information |
| 9 | you display in your pages will correlate directly to the server |
| 10 | resources, memory, and processing cycles utilized, which affect your |
| 11 | page load speeds. By caching your pages, since they are saved in their |
| 12 | fully rendered state, you can achieve performance that nears that of |
| 13 | static web pages. |
| 14 | |
| 15 | How Does Caching Work? |
| 16 | ====================== |
| 17 | |
| 18 | Caching can be enabled on a per-page basis, and you can set the length |
| 19 | of time that a page should remain cached before being refreshed. When a |
| 20 | page is loaded for the first time, the cache file will be written to |
| 21 | your application/cache folder. On subsequent page loads the cache file |
| 22 | will be retrieved and sent to the requesting user's browser. If it has |
| 23 | expired, it will be deleted and refreshed before being sent to the |
| 24 | browser. |
| 25 | |
| 26 | Note: The Benchmark tag is not cached so you can still view your page |
| 27 | load speed when caching is enabled. |
| 28 | |
| 29 | Enabling Caching |
| 30 | ================ |
| 31 | |
| 32 | To enable caching, put the following tag in any of your controller |
| 33 | functions:: |
| 34 | |
| 35 | $this->output->cache(n); |
| 36 | |
| 37 | Where n is the number of **minutes** you wish the page to remain cached |
| 38 | between refreshes. |
| 39 | |
| 40 | The above tag can go anywhere within a function. It is not affected by |
| 41 | the order that it appears, so place it wherever it seems most logical to |
| 42 | you. Once the tag is in place, your pages will begin being cached. |
| 43 | |
Derek Jones | af8da30 | 2011-10-05 17:40:07 -0500 | [diff] [blame] | 44 | .. important:: Because of the way CodeIgniter stores content for output, |
| 45 | caching will only work if you are generating display for your controller |
| 46 | with a :doc:`view <./views>`. |
Derek Jones | 8ede1a2 | 2011-10-05 13:34:52 -0500 | [diff] [blame] | 47 | |
| 48 | .. note:: Before the cache files can be written you must set the file |
| 49 | permissions on your application/cache folder such that it is writable. |
| 50 | |
| 51 | Deleting Caches |
| 52 | =============== |
| 53 | |
| 54 | If you no longer wish to cache a file you can remove the caching tag and |
| 55 | it will no longer be refreshed when it expires. Note: Removing the tag |
| 56 | will not delete the cache immediately. It will have to expire normally. |
| 57 | If you need to remove it earlier you will need to manually delete it |
| 58 | from your cache folder. |