Кэширование используется для ускорения вызовов display() или fetch() путем сохранения их результатов в файл. Кэшированная версия файла (если таковая будет найдена) отображается сразу, без перегенерации вывода. Кэширование может значительно ускорить работу, особенно если используются сложные шаблоны с большим количеством данных. Так как кэшируется вывод display() и fetch(), один файл в кэше может представлять из себя набор разных шаблонов, конфигурационных файлов - всего того, что использовалось при генерации этого вывода.
Так как шаблоны могут меняться со временем, очень важно следить за тем что вы кэшируете и на который срок. Например, если вы отображаете титульную страницу вашего сайта, которая не меняется слишком часто, то е╦ кэшированную версию можно не обновлять в течение часа или больше. С другой стороны, если вы выводите страницу с прогнозом погоды, которая может меняться с каждой минутой, то кэшировать е╦ не имеет смысла.
Прежде всего, кэширование необходимо активировать. Это можно сделать, установив $caching = true (или 1).
При включенном кэшировании, вызываемая функция display('index.tpl') интерпретирует шаблон как обычно, но также сохраняет копию вывода в файл (кэшированую копию) в $cache_dir. При следующем вызове display('index.tpl'), вместо повторной интерпретации шаблона, будет использована кешированая копия.
Техническое замечание: Файлы в директории $cache_dir имеют те же имена, что и соответствующие шаблоны. Их имена оканчиваются расширением ".php", но на самом деле они не являются выполняемыми php-скриптами. Не редактируйте эти файлы!
Каждая кэшированая страничка существует на протяжении определенного времени, указанного в $cache_lifetime. Значение по умолчанию равно 3600 секундам или 1 часу. После того, как это время истекает, кэш обновляется. Существует возможность присвоить каждой кэшированой страничке собственное время жизни, установив $caching = 2. Смотрите документацию $cache_lifetime для получения подробных сведений.
Если включен параметр $compile_check, то каждый файл шаблона и конфигурации, связанный с файлом кэша, проверяется на наличие изменений. Если один из этих файлов был модифицирован с тех пор, как кэш был создан, кэш немедленно обновляется. Это незначительно повышает нагрузку, поэтому, для оптимальной производительности оставьте значение $compile_check равным false.
Если $force_compile активирован, файлы кэша всегда будут обновляться. Это средство можно использовать для отключения кэширования во время отладки. $force_compile обычно используется только в целях отладки, так как более правильным способом отключения кеширования является установка $caching = false (или 0).
Функция is_cached() может быть использована для определения, имеется ли у шаблона работоспособный кэш. Если у вас есть кэшированый шаблон, которому необходимо, например, получить выборку из базы данных, вы можете использовать эту функцию, чтобы пропустить процесс обращения к базе.
Пример 14-4. Использование is_cached()
|
Вы можете сделать так, чтобы часть страницы оставалась динамической, даже если страница кэшируется, при помощи встроенной функции insert. Например, кэшироваться может вся страница, за исключением баннера. Используя функцию insert для баннера, вы можете сохранять этот элемент динамичным, внутри кэшированой странички. Смотрите документацию по insert для получения подробностей и примеров.
Очистить все файлы кэша можно при помощи функции clear_all_cache(), а конкретный файл кэша (или группу) - вызвав clear_cache() функцию.
Пред. | Начало | След. |
unregister_resource | Уровень выше | Множественное кэширование страниц |
HIVE: All information for read only. Please respect copyright! |