is_cached()

is_cached() -- 如果该模板有合理的缓存则返回true

描述

bool is_cached ( string template [, string cache_id [, string compile_id]])

技术注解:如果is_cached()返回TRUE,它实际上将调入缓存的输出并存储在内部。任何后继的调用display()fetch()将返回该内部存储的输出而不会尝试重新调入缓存文件。这将预防所谓的竞争情形,即在上例is_cached()display()之间,第二个进程清除了缓存。这也意味着如果调用is_cached()返回TRUE,那么clear_cache()以及其它缓存设置的改变将没有任何效果。

例子13-1. is_cached()

<?php
$smarty
->caching true;

if(!
$smarty->is_cached('index.tpl')) {
// 进行数据库调用,进行变量赋值
}

$smarty->display('index.tpl');
?>

例子13-2. is_cached()带有多个缓存模板

<?php
$smarty
->caching true;

if(!
$smarty->is_cached('index.tpl''FrontPage')) {
  
// 
进行数据库调用,进行变量赋值
}

$smarty->display('index.tpl''FrontPage');
?>

    参见clear_cache()clear_all_cache()以及caching section