2015-04-19 59 views
2

我有一個應用程序,我用阿賈克斯來更新評論& Like count。Codeigniter HTML緩存與動態內容

我使用笨頁面緩存http://www.codeigniter.com/user_guide/general/caching.html

,並設置下面的代碼重新每隔60分鐘

$this->output->cache(60); 

問題是緩存,當有人進入一個新的評論,DB操作正在發生的事情(因爲Ajax調用),但由於緩存的HTML頁面,新插入的註釋在頁面刷新後消失。如何處理緩存以及動態內容更改?

回答

0

我找到了解決方案。之前或之後無斜線:

要刪除您需要使用下面的函數

$this->output->delete_cache('CONTROLLER/FUNCTION'); 

注意緩存文件。

在我的案例中,我使用codeigniter中的自定義路由。當用戶輸入example.com時,它將被路由到example.com/CONTROLLER/FUNCTIONNAME,並且該默認登錄頁面也是如此。

所以我創建了一個新的功能。請refer here

0

緩存的主要目的是在頁面加載時節省服務器資源(即服務器不需要每次加載時都獲取所有的動態數據)。

聽起來好像您正在使用AJAX功能同時提交數據,但也修改客戶端的網頁。當用戶刷新頁面時,這將從服務器獲取內容,在這種情況下,原始緩存的內容在註釋生成之前生成,因此其操作與其應該完全相同。

如果您確實需要緩存此頁面,則可以考慮刪除緩存,這會在每次發表評論時強制在下一頁加載時重建緩存。在你的控制器中放置以下代碼行(在接收AJAX數據的函數中)應該這樣做:

$this->output->delete_cache('foo/bar'); 
+0

你能告訴我什麼是/ foo/bar嗎?我想控制器/函數名稱不刪除。 –

+0

@abdulrashid是的我認爲它應該是控制器/功能,但我沒有親自測試過;我剛剛從CI文檔中獲得了這些信息,現在我將創建一個小例子來測試並儘快通知您。 –

+0

你能確認你正在使用哪個版本的CodeIgniter嗎? –