2016-05-21 510 views
0

我有一個用於顯示價格的JSON文件。 JSON文件只刷新每30分鐘的服務器端,但是當客戶端刷新時,他只獲得相同的版本。有沒有辦法讓JSON文件有一個到期日期,然後重新下載它,而不必繼續下載它?如何緩存JSON響應?

+0

你可以將其存儲在的sessionStorage或localStorage的。儘管如此,你需要在它周圍放一點到期邏輯。也許存儲兩個密鑰,一個控制到期。 – Dismissile

+0

有沒有辦法做到這一點PHP明智?或者我應該切換到jQuery的一切? – TheGuyWhoCodes

+0

您需要研究HTTP服務器和PHP中的緩存控件。 – JAAulde

回答

1

如果文件自瀏覽器存儲在其緩存中的日期以來沒有更改過,那麼您可以將服務器設置爲返回304 - 未修改的響應。基本上,當客戶端請求文檔時,它可以在請求頭中發送「If-Modified-Since」日期。如果該文件自該日期以來未更改,則服務器將響應304 - Not Modified響應,客戶端將使用緩存版本。

0

將這個在您通過AJAX調用你的PHP文件的頂部:

header("Cache-Control: max-age=1800"); 
header("Cache-Control: public", false); 

這將讓瀏覽器緩存文件1800秒。

如果你正在使用jQuery,不要忘了打開緩存屬性:

$.ajax({url:"yourfile.php",cache:true})