2012-12-19 61 views
0

我需要緩存一個產品的detail_view,我真的很想使用COutputCache或CHttpCacheFilter,因爲它們是以相同的方式向最多100個用戶顯示頁面的最快方式無需再次調用控制器。我只是有一個問題

  • 如果用戶寫了一個評論,他通常得到一個提示信息和註釋應顯示產品的下面,但我不找到正確的表達詢問是否$ _ POST發送正常...我要問的!空($ _ POST),但似乎它總是空

我已經嘗試過這樣的事情

array(
     'COutputCache', 
     'duration'=>7200, 
     'varyByRoute' => true, 
     'varyByExpression' => 'md5(Yii::app()->request->url . (!empty($_POST) ? CJSON::encode($_POST) : ""))', 
    ), 

回答

0

其實我發現實現這一目標的最佳方式,並希望與分享您!

這應該是動態且不加載獲取緩存的每一個網站的一部分,您可以用

$this->renderPartial('getFlashMessages'); 
在這種情況下getFlashMessages

調用應該返回輸出控制器內部的回調函數(而不是echo)

非常有幫助,並且可以緩存幾乎所有內容,並且仍然有動態內容,而無需爲每個部分編寫Ajax!