CodeIgniter, руководство пользователя к версии 1.6.1


Кеширование веб-страниц

CodeIgniter позволяет закешировать страницы, чтобы добиться максимальной производительности.

Хотя сам CodeIgniter и достаточно быстрый, количество динамической информации на выходе в ваших страницах соотносится с ресурсами сервера, памятью, процессорными циклами, привязанными к скорости загрузки страниц. Кэшируя страницы с того момента как они были приведены к окончательному виду, вы можете достичь производительности, сравнимой со статическими страницами.

Как работает кеширование?

Кеширование может быть включено для каждой страницы, а так же указан интервал времени, в течение которого страница должна не генерироваться заново, а браться из кеша. При загрузке страницы в первый раз, кеш-файл будет записан в директорию system/cache. При последующих запросах страница будет считываться из кеша и отправляться в браузер пользователя. Если время кеширования истекло, то страница стирается, генерируется заново, записывается в кеш и отдается пользователю в браузер.

Замечание: Показатели производительности не кешируются чтобы можно было просмотреть нагрузку во время кеширования.

Включение кеширования

Для включения кеширования впишите в любую функцию вашего контроллера:

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

Где n это количество минут на которые вы хотите оставлять страницу в кеше, до ее обновления.

Приведенный выше вызов может быть указан в любом месте вашей функции. Место вызова никак не повлияет на результат, поэтому можете сделать это там, где посчитаете наиболее логичным. Как только вызов будет написан — ваша страница окажется в кеше.

Предупреждение: Т.к. CodeIgniter сохраняет в кеше только контент для вывода, то кеширование будет работать только для контроллеров, генерирующих вывод при помощи отображения.

Замечание: Т.к. закешированные файлы будут записываться в директорию system/cache, вы должны установить системные права на запись в нее.

Удаление кеша

Если вам больше не надо кешировать некоторое отображение, то просто удалите вызов функции, создающей кеш, и он не будет обновлен после того как истечет. Замечание: Удаление функции не очистит существующий кеш. Он удалится, когда кончится время его жизни. Если вам необходимо стереть кеш немедленно, то придется удалить его из папки с кешем вручную.