2012-02-01 54 views
3

我有一個在zend框架中開發的應用程序。我需要確保瀏覽器是每次加載我的網站時不使用緩存的 。有沒有辦法讓每次訪問zend清除緩存?我正在尋找可能的ini設置。讓zend每次訪問都清除緩存?

+1

與其說是Zend框架的問題。更多的一般網絡緩存 - 因此HTTP - 問題。這一切都是關於您發送的HTTP頭,指導客戶端不要緩存。不過,你確定你真的想要抑制客戶端緩存嗎?這是提高性能的最基本的方法之一,特別是對於靜態資產(如圖像,JavaScript和樣式表)。或者,您是否需要一種方法來確保每位訪問者在更新後使用最新的資產? – 2012-02-01 07:13:02

+0

這是嚴格的發展?在現場環境中緩存可能不是一個好主意。 – quickshiftin 2012-02-02 22:17:31

回答

0

我不知道這是否是一個好主意,但是你可以從閱讀本開始:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

在14.9段落。有對緩存控制的完整解釋。

例如,如果你想確保用戶將看到總是你可以設置一個短的過期時間的緩存條目的最新版本...

注意:如果你不讓瀏覽器爲了緩存內容,每次訪問都會像第一次加載一樣緩慢......(特別是如果有很多圖像和「重」對象)

好的編程!

2

如果您使用會話(Zend_Session),PHP會自動發送這些標頭。

如果不使用會話,一個Zend控制器裏面,你可以使用這個:

<?php 

class SomeController extends Zend_Controller_Action { 
    function indexAction(){ 
     $this->getResponse()->setHeader('Cache-Control','no-store, no-cache, must-revalidate, post-check=0, pre-check=0',1); 
     $this->getResponse()->setHeader('Expires','Thu, 19 Nov 1981 08:52:00 GMT',1); 
     $this->getResponse()->setHeader('Pragma','no-cache',1); 
    } 
}