smarty3緩存設(shè)置原理和注意事項(xiàng)
來源:昆明多彩網(wǎng)絡(luò)公司 日期:2011-03-22 閱讀: 發(fā)表評(píng)論
開啟緩存的變量是caching,有3個(gè)值:默認(rèn)為0表示關(guān)閉緩存;1為開啟緩存模式1,使用統(tǒng)一的緩存過期時(shí)間;2為開啟緩存模式2,為每個(gè)頁(yè)面使用單獨(dú)的緩存時(shí)間。同時(shí)需要定義緩存路徑cache_dir,如果沒有定義該變量,smarty將自動(dòng)默認(rèn)一個(gè)緩存路徑。
前面的工作做完后,下面的設(shè)置是關(guān)鍵點(diǎn),我們啟用緩存的目的就是提升網(wǎng)站速度,而影響網(wǎng)站速度除了服務(wù)器本身的性能和帶寬因素之外,數(shù)據(jù)庫(kù)查詢和php文件的編譯是影響網(wǎng)站速度的兩大主要因素,原理是利用smarty的函數(shù)來判斷對(duì)應(yīng)的緩存是否存在,如果存在的話就跳過查詢數(shù)據(jù)庫(kù)和其他耗費(fèi)內(nèi)存的操作,直接讀取緩存文件,提升網(wǎng)站速度。
網(wǎng)站制作編寫代碼時(shí)需要隨時(shí)判斷對(duì)應(yīng)的緩存文件是否存在,通過函數(shù)isCached()來判斷,返回true表示緩存已經(jīng)存在,注意該函數(shù)在smarty3中的命名有所改變,注意查閱手冊(cè),看一下實(shí)例代碼:
if(!isCached('index.tpl', 'cache_id')){ 這里是查詢數(shù)據(jù)庫(kù)的代碼或者其他方面的操作}
注意,php中的代碼將按照正常php腳本解析運(yùn)行,并不是網(wǎng)上一些人說的如果緩存存在就直接腳本停止運(yùn)行(exit);
注意,如果數(shù)據(jù)庫(kù)更新后想要同時(shí)更新前臺(tái)顯示,需要在增加或者編輯信息后同時(shí)刪除對(duì)應(yīng)的緩存文件即可來達(dá)到前臺(tái)頁(yè)面的更新的目的,同時(shí)可以配合$cache_lifetime=-1(緩存永不過期)使網(wǎng)站達(dá)到最好的性能。
發(fā)表評(píng)論評(píng)論列表(有 條評(píng)論)