Drupal 6 - 禁用特定视图的视图缓存

时间:2011-03-30 13:58:15

标签: drupal drupal-views

我有很多不经常改变的观点,并享受缓存带来的好处。但我有一个视图,用于在我的侧边栏中的块中显示随机引用,我不想缓存。有没有办法禁用此特定视图的缓存?具体来说,每次刷新页面时我都希望看到不同的引用。

更新:我在网站的性能设置中将缓存模式设置为正常,我尝试进入视图并设置缓存=无(以及阻止设置:缓存=不缓存),然后进入在“视图工具”页面中,选择“禁用视图数据缓存”,它在我登录时有效,但是一旦我注销,报价在刷新后保持不变。

更新:我开始认为如果你在Drupal中启用了页面缓存,那么忽略所有其他缓存设置(即View和Block缓存)。谁能证实这一点?

3 个答案:

答案 0 :(得分:2)

在特定显示的Basic settings下的视图用户界面中,您有一个名为Caching的选项,将其设为无。并且您的视图不会被缓存。所以你随机 每次引用。 :)

编辑:哎呀我怎么想念你所说的:(

使用Cache Exclude模块禁用特定页面上的缓存。如果您的随机区块在许多页面上,您可能需要深入挖掘以找到替代解决方案。一切顺利;)

答案 1 :(得分:1)

建议:在客户端进行随机化。将它们全部加载到javascript数组中并编写一个快速函数来选择页面加载时的随机引用。除非有数百个可能的报价,否则它不应该过多地影响页面,&在处理缓存策略时,您可以排除这一个小侧边栏功能。

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

答案 2 :(得分:0)

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

您还可以使用以下内容直接更改数据库中的块缓存设置:

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

将此缓存条目设置为-1表示不会缓存该块。

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