2011-12-03 157 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 –