2010-07-02 31 views
0

我有一個應用程序類型的網站,有幾個長列表頁面(如按國家分組的公司列表),需要幾秒鐘才能生成,但不會經常更改。我用APC &內存緩存在一定程度上,但我也想:「爲什麼它擊中了服務器在所有」,所以我設計了這一點:這個瀏覽器緩存系統有問題嗎?

ob_start(); 
require_once '../bootstrap.inc.php'; request_router(); // MVC style system, all work starts here 

header("Expires: " . gmdate("D, d M Y H:i:s",time()+300) . " GMT"); // 5 minutes 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: private"); 
header("Pragma: private"); 
echo ob_get_clean(); 

我基本上只是想有它設置,這樣,當他們去大列表,它的內置,但當他們點擊進入一個鏈接,然後點擊另一個鏈接返回列表,它不檢查每次重建列表。

在嘗試實施之前發現任何缺陷?我試圖在Apache中使用ExpiresActive來做到這一點,但是我無法讓它工作,但這對我來說似乎更容易,而且在一個讓我更容易控制Expires頭文件的地方)

回答

1

看不到任何問題。

如果你想要更多的靈活性,那麼你可以使你添加的值到達過期時間,這個變量可以在你的MVC代碼中的其他地方設置,但如果沒有設置,默認爲300。這樣,您可以爲不同的頁面設置不同的到期時間,甚至可以將它設置爲負值,以便永不需要緩存的頁面。

+0

良好的通話。實際上,我只需要/想要在幾頁上找到這一點,並且我正在考慮只爲這些設置方法,但不會向控制器添加更多代碼。你的解決方案。謝謝。 – Hans 2010-07-02 13:41:46