2010-06-01 105 views
2

我有一個頁面,搜索結果通過ajax加載。然後它會在頁面上列出產品,您可以點擊查看每個產品。我想更改此頁面,如果您在瀏覽器上點擊「後退」,則會加載緩存,而不是強制用戶再次搜索。強制Ajax內容的頁面緩存

注:我不是在尋找一個AJAX的緩存,但一個簡單的瀏覽器緩存頭

我怎樣才能做到這一點?

我現在有....

header('Cache-Control: private, max-age:3600'); 
header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + 3600)); 

,它不會加載緩存

回答

0

你可能想使用jQuery的歷史插件。 查看demo

+0

我拍攝的一個直線上升的瀏覽器緩存,將緩存的頁面作爲一個整體,而不僅僅是結果。不過謝謝 – Webnet 2010-06-01 16:44:10

1

而不是捕獲瀏覽器上的「後退」按鈕或依靠Javascript(從來不是一個好主意),我會建議使用會話來保存結果。我通常爲搜索結果做的是將格式化的結果保存到會話中以便快速重新加載(對於您所描述的情況,查看詳細信息頁面後返回的情況),並在任何時候重新進行搜索時將其替換,以便您沒有海量的會話數據堆積如山。

當你加載頁面時,檢查任何POST數據(或GET,但是你正在做它),然後檢查會話以查看是否使用該數據進行了最近的搜索。這會加快速度,並將一些流量從數據庫中取出。