Как работает кэширование вывода CodeIgniter? - PullRequest
6 голосов
/ 05 июля 2010

Я прочитал эту ссылку: -

http://codeigniter.com/user_guide/general/caching.html

Написано, что: -

When a page is loaded for the first time, the cache file will be written to your system/cache folder

и что мы можем кешироватьвзгляд $this->output->cache(60);.Но как это на самом деле работает?Что делать, если мои пользователи регулярно обновляют и удаляют записи, в результате чего вид меняется очень часто.Это покажет измененные данные?или кеш вернет старые устаревшие данные?(до вставок и обновлений)?Если он автоматически управляет и доставляет свежие данные из базы данных, тогда какова цель указания минут в функции cache?

Заранее спасибо:)

Ответы [ 2 ]

14 голосов
/ 05 июля 2010

Как обычно работает кэширование codeigniter:

Сделан запрос страницы.Codeigniter (до того, как большая часть фреймворка была даже загружена) создает хэш текущего URL, и если он находит это имя файла в каталоге кеша, он обслуживает его.

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

Реализация Codeigniter называется кешированием "полной страницы" и поэтому ограничена в своей полезности.Здесь есть библиотека частичного кеширования, которую я изучил у Фила Стерджена: http://philsturgeon.co.uk/code/codeigniter-cache

Честно говоря, для большинства проектов полностраничное кеширование не так уж и полезно.На самом деле, в проектах, для которых мне нужно полное кэширование страниц, я даже не оставляю это до codeigniter (я оставляю это веб-серверу: это намного быстрее).метод частичного кеширования;большинство людей предпочли бы это.Посмотрите в APC, если вы используете один сервер или Memcached, если у вас есть несколько серверов.

Удачи.

7 голосов
/ 05 июля 2010

Но как это на самом деле работает?

Если существует кэшированная версия, которая моложе времени кэширования, эта кэшированная версия будет выведена.* Будет ли отображать измененные данные?

В конце концов, да, но с задержкой в ​​$ cache_time

Что если мои пользователи будут регулярно обновлять и удалять записи, в результате чего представление меняется очень часто.*

Сократите время кеширования или вообще не используйте кеширование

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...