2011-03-30 65 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從那裏挑選。對於最終用戶來說,它幾乎是相同的。