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

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

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

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

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

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

Чтобы включить кеширование, поместите следующий тег в любой из ваших методов контроллера:

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

Где $n количество минут пока страница останется в кеше до следующего обновления.

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

Важно

Поскольку CodeIgniter хранит содержимое в выходах, кеширование будет работать только при создании выхода коньроллера с view.

Важно

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

Примечание

Для записи файлов кеша вы должны установить права application/cache/ папки доступной для записи.

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

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

Примечание

Удаление тега не удаляет кеш сразу. Кеш будет удален по истечению времени.

Если вам нужно вручную удалить кеш, то вы можете использовать метод delete_cache():

// Удаляет кэш для текущего URI
$this->output->delete_cache();

// Удаляет кэш для /foo/bar
$this->output->delete_cache('/foo/bar');