Smarty成員方法:isCached()

2018-12-02 15:20 更新

Name

isCached() — 檢查模板是否已經(jīng)緩存

說(shuō)明

bool isCached(string template,
              string cache_id,
              string compile_id);
  • 此函數(shù)僅在 $caching設(shè)置為Smarty::CACHING_LIFETIME_CURRENTSmarty::CACHING_LIFETIME_SAVED的時(shí)候啟用。 參見 緩存。

  • 當(dāng)你需要使用多個(gè)緩存時(shí),需要設(shè)置 $cache_id這個(gè)可選參數(shù)。

  • 你可以傳遞第三個(gè)可選的參數(shù) $compile id。 如果省略了該參數(shù),那么會(huì)繼續(xù)使用之前的$compile_id,如果它有設(shè)置的話。

  • 如果你不希望傳遞$cache_id但想傳遞 $compile_id參數(shù),你可以傳遞一個(gè)NULL作為$cache_id.

技術(shù)說(shuō)明

如果isCached()返回 TRUE ,那么系統(tǒng)底層將已經(jīng)載入了緩存的內(nèi)容并存儲(chǔ)到系統(tǒng)中。 接著執(zhí)行的display() 或者 fetch() 將直接返回存儲(chǔ)在系統(tǒng)中的緩存內(nèi)容,而不會(huì)再?gòu)木彺嫖募?nèi)讀取。 這個(gè)機(jī)制避免了在執(zhí)行isCached()和 display()的時(shí)候重復(fù)兩次讀取緩存內(nèi)容,導(dǎo)致系統(tǒng)開銷。 這也意味著,在isCached() 返回TRUE后,調(diào)用的 clearCache() 或者其他緩存設(shè)置,將不會(huì)影響緩存的內(nèi)容輸出。

Example 14.32. isCached()

<?php
$smarty->setCaching(Smarty::CACHING_LIFETIME_CURRENT);

if(!$smarty->isCached('index.tpl')) {
// do database calls, assign vars here
}

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

Example 14.33. isCached()用于多緩存的模板

<?php
$smarty->setCaching(Smarty::CACHING_LIFETIME_CURRENT);

if(!$smarty->isCached('index.tpl', 'FrontPage')) {
  // do database calls, assign vars here
}

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

參見 clearCache()clearAllCache(), 和 緩存.

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)