display(''index.tpl'',$my_cache_id);此特性可用" />

国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 php教程 PHP源碼 php+Smarty的緩存操作

php+Smarty的緩存操作

Jun 08, 2016 pm 05:32 PM
Block cache insert quot smarty

<script>ec(2);</script>
一、使用緩存
要開啟smarty的緩存,只需將caching設(shè)為true,并指定cache_dir即可.
使用cache_lefetime指定緩存生存時(shí)間,單位為秒
要對相同頁面生成多個(gè)不同的緩存,在display或fetch中加入第二參數(shù)cache_id,如$smarty->display(''index.tpl'',$my_cache_id);此特性可用于對不同的$_GET進(jìn)行不同的緩存
二、清除緩存

clear_all_cache();//清除所有緩存
clear_cache(''index.tpl'');//清除index.tpl的緩存
clear_cache(''index.tpl'',cache_id);//清除指定id的緩存

三、使用自定義緩存方式

設(shè)置cache_handler_func使用自定義的函數(shù)處理緩存
如:
$smarty->cache_handler_func = "myCache";
function myCache($action, &$smarty_obj, &$cache_content, $tpl_file=null, $cache_id=null, $compile_id=null){
}
該函數(shù)的一般是根椐$action來判斷緩存當(dāng)前操作:
switch($action){
case "read"://讀取緩存內(nèi)容
case "write"://寫入緩存
case "clear"://清空
}
一般使用md5($tpl_file.$cache_id.$compile_id)作為唯一的cache_id
如果需要,可使用gzcompress和gzuncompress來壓縮和解壓
四、局部關(guān)閉緩存

要在某些區(qū)域使緩存失效(只對需要的緩存),有幾種方法:
inser:
定義一個(gè)inser標(biāo)簽要使用的處理函數(shù),函數(shù)名格式為:insert_xx(array $params, object &$smarty)其中的xx是insert的name,也就是說,如果你定義的函數(shù)為insert_abc,則模板中使用方法為{insert name=''abc''}
參數(shù)通過$params傳入
也可以做成insert插件,文件名命名為:insert.xx.php,函數(shù)命名為:smarty_insert_aa($params,&$smarty),xx定義同上
register_block:
定義一個(gè)block:smarty_block_name($params,$content, &$smarty){return $content;} //name表示區(qū)域名
注冊block:$smarty->register_block(''name'', ''smarty_block_name'', false); //第三參數(shù)false表示該區(qū)域不被緩存
模板寫法:{name}內(nèi)容{/name}
寫成block插件:
1)定義一件插件函數(shù):block.cacheless.php,放在smarty的plugins目錄
block.cacheless.php的內(nèi)容如下:



2) 編寫程序及模板
示例程序:testCacheLess.php



所用的模板:cache.tpl

已經(jīng)緩存的:{$smarty.now}
{cacheless}
沒有緩存的:{$smarty.now}
{/cacheless}


關(guān)于模板中部分不被緩存的解決辦法:

smarty提供了強(qiáng)大的緩存功能。但有時(shí)我們并不希望整篇文檔都被緩存,而是有選擇的緩存某一部分內(nèi)容或某一部分內(nèi)容不被緩存。例如你在頁面上端使用一個(gè)帶有廣告條位置的模板,廣告條可以包含任何HTML、圖象、FLASH等混合信息. 因此這里不能使用一個(gè)靜態(tài)的鏈接,同時(shí)我們也不希望該廣告條被緩存. 這就需要在 insert 函數(shù)指定,同時(shí)需要一個(gè)函數(shù)取廣告條的內(nèi)容信息。smarty也提供了這種緩存控制能力。

我們可以使用{insert}使模板的一部分不被緩存

可以使用$smarty->register_function($params,&$smarty)阻止插件從緩存中輸出,

還可以使用$smarty->register_block($params,&$smarty)使整篇頁面中的某一塊不被緩存。

下面我們真對一個(gè)簡單需求,分別說明這三種控制緩存輸出的方法。

需求:被緩存的文檔中當(dāng)前時(shí)間不被緩存,隨每次刷新而變化。
本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Moondrop 發(fā)布 Block 真無線耳機(jī),具有低延遲遊戲模式 Moondrop 發(fā)布 Block 真無線耳機(jī),具有低延遲遊戲模式 Aug 10, 2024 pm 03:31 PM

Moondrop 為音頻愛好者發(fā)布了 Block 真無線耳機(jī),可舒適地佩戴在外耳中。與塞入耳道的耳塞不同,Block 不會造成耳朵堵塞的感覺或積聚耳垢。隨附 13 毫米驅(qū)動器

入職後,我才明白什麼叫Cache 入職後,我才明白什麼叫Cache Jul 31, 2023 pm 04:03 PM

事情其實(shí)是這樣的,當(dāng)時(shí)領(lǐng)導(dǎo)者交給我一個(gè)perf硬體效能監(jiān)視的任務(wù),在使用perf的過程中,輸入指令perf list,我看到了以下資訊:我的任務(wù)就要讓這些cache事件能夠正常計(jì)數(shù),但重點(diǎn)是,我根本不知道這些misses、loads是什麼意思。

mysql中insert?ignore、insert和replace的差別是什麼 mysql中insert?ignore、insert和replace的差別是什麼 May 29, 2023 pm 04:40 PM

insertignore、insert和replace的區(qū)別指令已存在不存在舉例insert報(bào)錯(cuò)插入insertintonames(name,age)values(“小明”,23);insertignore忽略插入insertignoreintonames(name,age)values(“小明”,24);replace替換插入replaceintonames(name,age)values(“小明”,25);表格需求:有PrimaryKey,或unique索引結(jié)果:表id都會自增測試程式碼建立表

使用java的StringBuilder.insert()函數(shù)在指定位置插入字串 使用java的StringBuilder.insert()函數(shù)在指定位置插入字串 Jul 24, 2023 pm 09:37 PM

使用java的StringBuilder.insert()函數(shù)在指定位置插入字串StringBuilder是Java中用於處理可變字串的類,它提供了多種方法來操作字串,其中insert()函數(shù)是用於在指定位置插入字串的常用方法之一。在本文中,我們將介紹如何使用insert()函數(shù)來實(shí)作在指定位置插入字串的功能,並給出對應(yīng)的程式碼範(fàn)例。 insert()

cache、rom、ram的特徵是什麼 cache、rom、ram的特徵是什麼 Aug 26, 2022 pm 04:05 PM

cache的特性:在CPU與主記憶體之間設(shè)定的一級或兩級高速小容量記憶體,其資訊是隨著電腦的斷電自然遺失。 ROM的特性:只能從記憶體讀取數(shù)據(jù),而不能往裡面寫訊息,電腦斷電後數(shù)據(jù)仍然存在。 ram的特點(diǎn):既可以從記憶體讀取數(shù)據(jù),也可以到記憶體中寫入資訊;用於存放運(yùn)行程式所需的命令、程式和資料等;電腦斷電後資訊自然遺失。

使用cache可以提高計(jì)算機(jī)運(yùn)行速度這是因?yàn)槭颤N 使用cache可以提高計(jì)算機(jī)運(yùn)行速度這是因?yàn)槭颤N Dec 09, 2020 am 11:28 AM

使用cache可以提高電腦運(yùn)行速度這是因?yàn)镃ache縮短了CPU的等待時(shí)間。 Cache是??位於CPU和主記憶體DRAM之間,規(guī)模較小,但速度很高的記憶體。 Cache的功能是提高CPU資料輸入輸出的速率;Cache容量小但速度快,記憶體速度較低但容量大,透過最佳化調(diào)度演算法,系統(tǒng)的效能會大幅提升。

nginx反向代理快取教學(xué)。 nginx反向代理快取教學(xué)。 Feb 18, 2024 pm 04:48 PM

以下是nginx反向代理快取的教學(xué):安裝nginx:sudoaptupdatesudoaptinstallnginx設(shè)定反向代理:開啟nginx設(shè)定檔:sudonano/etc/nginx/nginx.conf在http區(qū)塊中加入以下設(shè)定來啟用快?。篽ttp{...proxy_cache_path /var/cache/nginxlevels=1:2keys_zone=my_cache:10mmax_size=10ginactive=60muse_temp_path=off;proxy_cache

cache是??什麼記憶體? cache是??什麼記憶體? Nov 25, 2022 am 11:48 AM

cache叫做高速緩衝記憶體,是介於中央處理器與主記憶體之間的高速小容量記憶體,一般由高速SRAM構(gòu)成;這種局部記憶體是面向CPU的,引進(jìn)它是為減少或消除CPU與記憶體之間的速度差異對系統(tǒng)性能帶來的影響。 Cache容量小但速度快,記憶體速度較低但容量大,透過最佳化調(diào)度演算法,系統(tǒng)的效能會大幅提升。

See all articles