2011-12-03 156 views
2

假設我有一個包含動態內容的頁面(例如搜索結果)。什麼是適當的緩存技術?Smarty:如何正確緩存?

  • nocache標籤在整個頁面?
  • nocache標記周圍的標記實際上包含動態數據?
  • nocache標籤周圍的動態數據?
  • 不知何故告訴Smarty不要緩存動態數據?

動態數據被分配爲Smarty變量(例如,通過assign)。我認爲我需要嘗試最大化緩存,但我在需要緩存什麼,如何取消緩存,何時緩存,何時取消緩存等方面苦苦掙扎。

任何提示?

回答

0

如果你的網站大多是靜態的,那麼在顯示動態內容的整段代碼周圍都要加上nocache標籤。相反,如果你網站的每個頁面都包含一些動態輸出,我建議你在Smarty類初始化期間禁用Smarty緩存。

+0

我不應該試圖最大限度地緩存?幾乎每個頁面都會包含一些動態內容。 – StackOverflowNewbie

+0

如果該頁面的主要內容是動態的,請禁用所有緩存。如果只有小塊的動態數據,但該網站主要是靜態的,請使用'{nocache}'。每次禁用緩存時都不會分析Smarty模板。 Smarty模板僅在TPL修改時才被解析。然後生成一個PHP「編譯」頁面。所以,不要害怕Smarty模板解析開銷。 http://www.smarty.net/docs/en/caching.tpl –