国产gaysexchina男同gay,japanrcep老熟妇乱子伦视频,吃奶呻吟打开双腿做受动态图,成人色网站,国产av一区二区三区最新精品

Smarty單頁(yè)多個(gè)緩存

2018-12-09 11:35 更新

單頁(yè)多個(gè)緩存

在調(diào)用display()或者 fetch()的時(shí)候, 你可以設(shè)置單個(gè)頁(yè)面有多個(gè)緩存。 當(dāng)我們希望執(zhí)行display('index.tpl')的時(shí)候, 可以根據(jù)不同的情況來(lái)生成不同的緩存,并且可以單獨(dú)區(qū)分, 那么就需要設(shè)置$cache_id為第二個(gè)參數(shù)來(lái)實(shí)現(xiàn)了。

Example 15.6. display()的參數(shù)作為$cache_id

<?php
require('Smarty.class.php');
$smarty = new Smarty;

$smarty->setCaching(Smarty::CACHING_LIFETIME_CURRENT);

$my_cache_id = $_GET['article_id'];

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

上面,我們將$my_cache_id值作為$cache_id參數(shù)傳遞給 display()。 每個(gè)單獨(dú)的$my_cache_id值,對(duì)應(yīng)將會(huì)有單獨(dú)的 index.tpl模板的緩存文件生成。 在這個(gè)例子里面,$cache_id是我們從URL中獲得的article_id。

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

當(dāng)客戶端(瀏覽器)傳遞值到Smarty或任何的PHP程序時(shí),務(wù)必謹(jǐn)慎。 雖然上面例子通過(guò)URL傳遞article_id顯得比較方便,但可能會(huì)引起問(wèn)題。$cache_id值會(huì)用來(lái)建立文件目錄的, 所以如果用戶故意傳遞了非常大的值給article_id,或?qū)憘€(gè)快速循環(huán)的腳本來(lái)發(fā)送隨機(jī)的article_id, 那么這很有可能引起一些服務(wù)器端的問(wèn)題。 要記住,使用任何數(shù)據(jù)前要先檢查。 在上面的例子中,或許article_id有10個(gè)字符的長(zhǎng)度, 僅可以是字母數(shù)組的組合,而且還應(yīng)該是存在于數(shù)據(jù)庫(kù)內(nèi),那么,你就應(yīng)該檢查它!

確保用同一個(gè)$cache_id作為 isCached() 和 clearCache()的第二個(gè)參數(shù)。

Example 15.7. 給 isCached() 傳遞一個(gè) cache_id

<?php
require('Smarty.class.php');
$smarty = new Smarty;

$smarty->setCaching(Smarty::CACHING_LIFETIME_CURRENT);

$my_cache_id = $_GET['article_id'];

if(!$smarty->isCached('index.tpl',$my_cache_id)) {
    // 沒(méi)有緩存,這里將進(jìn)行一些賦值操作
    $contents = get_database_contents();
    $smarty->assign($contents);
}

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

要?jiǎng)h除特定$cache_id的全部緩存, 同時(shí)需要給clearCache() 傳遞null作為第一個(gè)參數(shù)。

Example 15.8. 刪除特定$cache_id的緩存

<?php
require('Smarty.class.php');
$smarty = new Smarty;

$smarty->setCaching(Smarty::CACHING_LIFETIME_CURRENT);

// 刪除$cache_id為"sports"的全部緩存
$smarty->clearCache(null,'sports');

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

按這種方式,你可以通過(guò)設(shè)置同一個(gè)$cache_id來(lái)把你的緩存組織起來(lái)。

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)