本文實(shí)例講述了Drupal7的cache緩存開(kāi)發(fā)的方法。分享給大家供大家參考。具體方法如下:
Drupal是一款非常好用的php開(kāi)發(fā)的開(kāi)源內(nèi)容管理框架了,這個(gè)框架在緩存方面做得非常的不錯(cuò),下文一起來(lái)學(xué)習(xí)Drupal7 cache緩存開(kāi)發(fā)吧。
使用Drupal構(gòu)建復(fù)雜而動(dòng)態(tài)的內(nèi)容是件很容易的事情。但是稍有不慎,你會(huì)為這種容易付出代價(jià)。在用戶查看某些復(fù)雜而動(dòng)態(tài)的頁(yè)面的時(shí)候,復(fù)雜的數(shù)據(jù)庫(kù)查詢,與高花銷的計(jì)算會(huì)導(dǎo)致頁(yè)面性能方面的問(wèn)題。
解決方案之一是在Druapl的后臺(tái)頁(yè)面開(kāi)啟頁(yè)面緩存。頁(yè)面緩存開(kāi)啟后,可以在某些頁(yè)面極大的降低數(shù)據(jù)庫(kù)查詢次數(shù)從而提高頁(yè)面性能。但是這有一定的局限性,就是頁(yè)面緩存僅僅對(duì)匿名用戶有效。對(duì)應(yīng)登錄用戶則會(huì)生效。
逐漸的,你可能會(huì)分析自己寫(xiě)過(guò)的代碼,找出數(shù)據(jù)出查詢的熱點(diǎn)進(jìn)行緩存優(yōu)化。幸運(yùn)的是,Drupal已經(jīng)內(nèi)置了一些緩存API,如果遵循下面的一些規(guī)則,可以將你的代碼優(yōu)化工作變得更容易。
基本規(guī)則:
規(guī)則:如果計(jì)算結(jié)果可以重用或存儲(chǔ),就不要計(jì)算兩次。
下面的簡(jiǎn)單例子用來(lái)演示這種情況。
這兩點(diǎn)理解后再來(lái)看上面的邏輯,發(fā)現(xiàn)雖然只有一個(gè)if判斷,但其實(shí)這段代碼是精妙無(wú)比的。
進(jìn)階:善用Drupal的cache函數(shù)。
在上面的代碼中,靜態(tài)變量的數(shù)據(jù)只會(huì)在一次的頁(yè)面加載過(guò)程中有效。如果重新訪問(wèn)該頁(yè)面,則會(huì)重新進(jìn)行數(shù)據(jù)的計(jì)算。就是說(shuō)靜態(tài)變量緩存的數(shù)據(jù)只是暫時(shí)的,沒(méi)有長(zhǎng)久的存儲(chǔ)起來(lái)。下面的代碼,演示如何將復(fù)雜的計(jì)算結(jié)果的數(shù)據(jù)存儲(chǔ)到drupal的cache表中,從而實(shí)現(xiàn)長(zhǎng)久存儲(chǔ)的目的。
新聞熱點(diǎn)
疑難解答