国产suv精二区69,精品国模一区二区三区,精品一区二区ww,处破痛哭a√18成年片免费,久久久久久久久毛片精品

云南網站建設創新企業 昆明多彩網絡公司

關于smarty緩存的設置問題?

來源:昆明多彩網絡公司 日期:2011-03-05 閱讀: 發表評論

smarty不僅將php實現了mvp,將代碼和模板層分離;同時還緩存頁面,加快網站的打開速度,提升網站性能,降低數據庫的壓力,但是怎么設置緩存才是最合理的呢?

 smarty的緩(huan)存(cun)開(kai)關(guan)(guan)變量(liang)是(shi)$caching,默(mo)認是(shi)關(guan)(guan)閉狀(zhuang)態,值為false,一般是(shi)在調試狀(zhuang)態下就關(guan)(guan)閉,但是(shi)真(zhen)正投入(ru)到(dao)生產環境的時(shi)候(hou)是(shi)需要開(kai)啟緩(huan)存(cun)的,能夠極大提升網站的打開(kai)速度。

但(dan)是(shi)smarty的(de)緩存也是(shi)一把雙刃劍(jian),在緩存前(qian)臺頁(ye)面的(de)同時(shi)(shi),如(ru)果(guo)后臺數據(ju)更(geng)新的(de)非常頻(pin)繁,如(ru)果(guo)緩存設置不(bu)當的(de)話,前(qian)臺將無(wu)法(fa)及(ji)時(shi)(shi)更(geng)新。

這里介紹另(ling)外一個smarty的(de)(de)變(bian)(bian)量(liang)(liang):$compile_check(編譯(yi)檢查(cha)變(bian)(bian)量(liang)(liang)),如果(guo)(guo)開(kai)啟(qi)此變(bian)(bian)量(liang)(liang),smarty會檢查(cha)模板(ban)文(wen)件是(shi)否(fou)改動(dong)過,如果(guo)(guo)模板(ban)改動(dong)過的(de)(de)話(hua)smarty就會重新(xin)生(sheng)成模板(ban)編譯(yi)文(wen)件,但是(shi)否(fou)會生(sheng)成緩存(cun)(cun)文(wen)件需(xu)要(yao)看兩個方面,第一是(shi)smarty是(shi)否(fou)開(kai)啟(qi)了緩存(cun)(cun),第二是(shi)對應的(de)(de)緩存(cun)(cun)文(wen)件是(shi)否(fou)存(cun)(cun)在著。

下面我們列舉幾個可能(neng)性:

1、$compile_check開啟,$caching開啟,同時設置$caching失效時間為3600秒(即一小時)

a.如果只(zhi)是數據庫更新了內容,模板(ban)無改(gai)動,不會更新模板(ban)編譯(yi)(yi)文件(就算刪除模板(ban)編譯(yi)(yi)也(ye)不會重新生成,模板(ban)編譯(yi)(yi)步驟直接跳過),在這3600中,前臺頁面無法體(ti)現出數據更新后的效果;

b.如果更新了模(mo)板文(wen)件,smarty只會(hui)(hui)重(zhong)(zhong)新生(sheng)成(cheng)模(mo)板的編(bian)譯文(wen)件,但是緩存依(yi)然不會(hui)(hui)重(zhong)(zhong)新生(sheng)成(cheng)(除非將(jiang)之(zhi)前生(sheng)成(cheng)的緩存文(wen)件刪除);

c.如(ru)果(guo)(guo)模板和(he)數據庫都有更(geng)新,效(xiao)果(guo)(guo)同前(qian)一(yi)個效(xiao)果(guo)(guo),只是重新生成(cheng)模板的(de)編譯文(wen)件,前(qian)臺效(xiao)果(guo)(guo)需要3600秒后(hou)才會更(geng)新(除非將之前(qian)生成(cheng)的(de)緩存(cun)文(wen)件刪除)。

2、$compile_check關閉,caching開啟,同時設置$caching失效時間為3600秒(即一小時)

a.如果(guo)只是數據(ju)庫更新了內容,模板無改動(dong),在這(zhe)3600中,前臺頁(ye)面無法體現(xian)出數據(ju)更新后(hou)的效果(guo);

b.如果更新了模板文件,smarty不(bu)會生成(cheng)模板的編譯文件,緩(huan)存(cun)不(bu)會重新生成(cheng)(除非將之前生成(cheng)的緩(huan)存(cun)文件刪除);

c.如(ru)果(guo)模板(ban)和數(shu)據庫都有更新,模板(ban)和緩(huan)(huan)存(cun)都不會重(zhong)新生(sheng)成(cheng),刪除之前生(sheng)成(cheng)的緩(huan)(huan)存(cun)后(hou)可(ke)以重(zhong)新生(sheng)成(cheng)緩(huan)(huan)存(cun),但是模板(ban)編譯(yi)文件依舊不會生(sheng)成(cheng)。

綜合上述條件,我們在網站制作中,可以采用這樣的策略:

第一種策略:如果為了(le)達到更(geng)大的性能,可以將$compile_check關(guan)閉,caching開(kai)啟;

第(di)二種策略:如果只(zhi)是(shi)想僅達到mvp代碼和模(mo)板分離(li)的效果,可(ke)以將$compile_check開(kai)啟,Caching關(guan)閉(bi)即可(ke)。

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