云南網(wǎng)站建設(shè)創(chuàng)新企業(yè) 昆明多彩網(wǎng)絡(luò)公司

在線qq:540105663

smarty3緩存設(shè)置原理和注意事項(xiàng)

來源:昆明多彩網(wǎng)絡(luò)公司 日期:2011-03-22 閱讀: 發(fā)表評(píng)論

使用smarty有幾個(gè)好處:實(shí)現(xiàn)mvp,表現(xiàn)層和數(shù)據(jù)庫分離;可以使用緩存機(jī)制,減少數(shù)據(jù)庫壓力,提升網(wǎng)站的速度;這里介紹一下smarty的緩存機(jī)制。

 開啟緩存的變量是caching,有3個(gè)值:默認(rèn)為0表示關(guān)閉緩存;1為開啟緩存模式1,使用統(tǒng)一的緩存過期時(shí)間;2為開啟緩存模式2,為每個(gè)頁面使用單獨(dú)的緩存時(shí)間。同時(shí)需要定義緩存路徑cache_dir,如果沒有定義該變量,smarty將自動(dòng)默認(rèn)一個(gè)緩存路徑。

前面的工作做完后,下面的設(shè)置是關(guān)鍵點(diǎn),我們啟用緩存的目的就是提升網(wǎng)站速度,而影響網(wǎng)站速度除了服務(wù)器本身的性能和帶寬因素之外,數(shù)據(jù)庫查詢和php文件的編譯是影響網(wǎng)站速度的兩大主要因素,原理是利用smarty的函數(shù)來判斷對(duì)應(yīng)的緩存是否存在,如果存在的話就跳過查詢數(shù)據(jù)庫和其他耗費(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ù)庫的代碼或者其他方面的操作}

注意,php中的代碼將按照正常php腳本解析運(yùn)行,并不是網(wǎng)上一些人說的如果緩存存在就直接腳本停止運(yùn)行(exit);

注意,如果數(shù)據(jù)庫更新后想要同時(shí)更新前臺(tái)顯示,需要在增加或者編輯信息后同時(shí)刪除對(duì)應(yīng)的緩存文件即可來達(dá)到前臺(tái)頁面的更新的目的,同時(shí)可以配合$cache_lifetime=-1(緩存永不過期)使網(wǎng)站達(dá)到最好的性能。

發(fā)表評(píng)論評(píng)論列表(有 條評(píng)論)