2013-06-28 46 views
0

我一直在研究在變量中緩存html的想法。我正在使用PHP,在我的函數中包括我已經聲明瞭一個變量。在網站頁面中,我測試變量以查看它是否爲空,如果是這樣,我調用一個函數並填充變量,或將其轉儲到頁面中。在變量中緩存HTML

在測試中,我已經執行了預期的工作。我想我的問題是,這是一個好主意嗎?作爲一種方法,這有什麼潛在的問題?

Regards

+1

你能說出你在做什麼嗎? –

+0

而不是問題你能告訴我們爲什麼你想這樣做,它給了什麼好處? – DavidB

+1

上次當我檢查這是變量的目的,以保持'東西'。 – Twisted1919

回答

2

該方法的缺點與需要根據當前用戶訪問而改變的動態內容相關。如果您可以識別標記的部分代碼,但生成代價昂貴,但訪問該網站的用戶非常靜態,則可以這樣做。

但是你需要對你的頁面結構進行一些思考。爲了緩存標記,你明顯地使用output buffering :),並且我假定,除非你想在內存中執行它。

此外,請確保它值得緩存標記,它不是更容易緩存數據結構。像數組一樣,從DB生成的對象並且重建成本很高。緩存數據結構使您的緩存標記不可知,並且您可以輕鬆地重新定位您的站點,而無需使整個緩存無效。

PS@Bart我滾我自己的框架,它不是一個差的產品:)不再是一個用戶,並開始成爲開發人員。實驗,學習,從頭開始建立,靠近金屬,看到火花飛揚,感受到燃燒。

+1

乾杯,謝謝你的積極響應。 – hondac90

0

不,這不是一個好主意。讀入MVC: model-view-controller。那裏有許多體面的框架。瞭解他們並使用他們。滾動你自己的意願很可能會創造出劣質的產品。

祝你好運!

+0

有時候,顯然緩存html變量是一個好主意,例如,如果加載html&填充數據涉及昂貴的數據庫調用,這將增加加載時間。在某些情況下,緩存的輸出可以抵消這個問題 – allen213

+0

我認爲這是馬匹的一個例子。這是一個非常小的項目等,等等.. – hondac90

1

當然,緩存是一個好主意。許多人使用內存存儲,如Memcached或APC緩存。

主要缺點是它通常需要一個很好的計劃來在信息不再是最新的時候使緩存失效。這也是一個體面的指標,你可能會過早地優化(或者彌補表現不佳的代碼而不修復它)。

在您的具體情況下,您可能會更好地使用輸出緩衝或加載視圖。大多數人不會考慮這種「緩存」。