2014-03-27 49 views
2

我正在使用PHP創建一個JSON文件,然後將其作爲AJAX請求的一部分進行查詢。目前這需要花費很長時間,這太長了,特別是鑑於這是在封閉的開發中,所以目前沒有同時發出的請求。在服務器上緩存動態JSON文件

我注意到延遲與我試圖直接在地址欄中加載JSON的延遲類似。數據不需要不斷更新 - 即使每12小時一次也能做到。

我的問題是:是否有可能在服務器端緩存這些數據以加速AJAX請求?如果是這樣,我會怎麼做呢?

很高興發佈任何相關的代碼,但我想這個問題是相當抽象的。

+0

在你的系統或[varnish](https://www.varnish-cache.org/)前面的Slap [memcached](http://memcached.org/)。 – Quentin

回答

1

下面我將如何去實現這樣一個緩存系統:

  1. 在一個JSON請求,我會用file_exists()函數,來看看我的cache.json文件存在如果沒有,創建一個。 (良好的做法,但只與第一次運行真正相關)。繼續生成JSON並在輸出到HTTP流之前將結果寫入文件。
  2. 如果文件存在,使用PHP的filemtime()函數確定文件的大小,如果大於6小時(或任何您選擇的),重新打開文件進行寫入並重新生成JSON數據存儲在輸出到HTTP流之前。
  3. 如果文件存在但是最近6小時內最後修改了文件,只需輸出文件內容,並且不用費力地生成任何JSON。

我希望這能幫助你走上正確的道路!這可能是我如何處理它,而不使用MySQL或類似的東西。

祝你好運。