2011-03-30 66 views
3

我有很多不经常更改的视图,并享受缓存的好处。但是我有1个视图,用于在侧边栏的一个块中显示随机引号,我不想缓存该块。有没有办法禁用这个特定的视图缓存?具体来说,我希望每次刷新页面时都看到不同的报价。Drupal 6 - 为特定视图禁用视图缓存

更新:我有缓存模式设置为正常在我的网站的性能设置,我试图进入视图和设置缓存=无(以及阻止设置:缓存=不要缓存),并去进入视图工具页面,并选择“禁用视图数据缓存”,并且它在我登录时有效,但只要我注销,刷新后的引用就保持不变。

更新:我开始认为,如果您在Drupal中启用了页面缓存,则忽略所有其他缓存设置(即查看和阻止缓存)。任何人都可以确认吗?

回答

2

在特定显示的Basic settings下的视图UI中,您可以选择一个名为Caching的选项,将其设置为无。而你的观点不会被缓存。所以你每次都会随机获得 报价。 :)

编辑:哎呀我怎么会错过你告诉:(

使用Cache Exclude模块的特定页面上禁用缓存如果你的随机块的许多页面,则可能需要更深的挖掘到。找到备用解决方案,一切顺利;)

+0

感谢您的建议,但如果我的网站的“性能”设置中的“缓存模式”设置为“正常”,则它对于未经身份验证的用户无效。 – jackocnr 2011-03-30 16:35:21

+0

不幸的是,该块在每个页面的侧边栏 – jackocnr 2011-03-31 08:43:32

+0

我只是接受最多票数的答案,因为Drupal 6现在已经过时,我认为我们不太可能会得到更多答案。 – jackocnr 2011-08-23 09:54:06

0

该块可能被缓存。你尝试过http://drupal.org/project/blockcache_alter吗?

您也可以直接在数据库中更改块的缓存设置的东西,如:

update blocks set cache=-1 where bid=<blockbid>; 

设置该缓存条目为-1意味着块将不会被缓存。

此外,将缓存设置为1将缓存每个角色的块,2将缓存每个用户的块,4将缓存每个页面的块,8将缓存该块一次(对于所有用户,页面等)。

+0

检查了数据库,并且该块已将缓存设置为-1 – jackocnr 2011-03-31 09:02:12

1

建议:在客户端随机化。把所有的东西加载到一个javascript数组中,并写一个快速的函数来选择页面加载时的随机报价。除非有数百个可能的引号,否则它不应该过多地降低页面的大小,在处理缓存策略时,您可以不考虑这个小侧栏功能。

事实上,即使有数百个随机引号,您可以使用这两种方法的组合。抓住你的模块50个随机线,他们让JavaScript从那里挑选。对于最终用户来说,它几乎是相同的。