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

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

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

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

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

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

網(wǎng)站制作編寫代碼時需要隨時判斷對應(yīng)的緩存文件是否存在,通過函數(shù)isCached()來判斷,返回true表示緩存已經(jīng)存在,注意該函數(shù)在smarty3中的命名有所改變,注意查閱手冊,看一下實例代碼:

if(!isCached('index.tpl', 'cache_id')){  這里是查詢數(shù)據(jù)庫的代碼或者其他方面的操作}

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

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

發(fā)表評論評論列表(有 條評論)