2011-11-16 124 views
0

我有一個應用程序向Web服務發出多個獲取請求,並使用該數據顯示地圖。我在多個地方使用它。因爲地圖需要時間來加載什麼是緩存獲取請求的最佳方式?緩存jquery獲取請求

我想到了以下方法

的,如果我只是使用的Memcache緩存響應我的應用程序仍進行GET請求。進一步優化我可以使用jquery/javascript緩存並設置Http cachingheader。

有沒有其他方法可以實現以提高性能?因爲我不想在所有頁面上發出多個獲取請求來顯示相同​​的地圖內容。

感謝

回答

1

您的情況最好的辦法是從服務器端設置緩存和到期HTTP頭,並迫使jQuery的同時使請求使用緩存。如果適用,我也建議從服務器發送修改日期。所以在緩存到期之後,JQuery首先詢問服務的內容是否已從上次修改日期更改過。

如果您成功應用緩存標頭,客戶端代碼將不會發出http請求,直到緩存時間到期。

主要有三種緩存方法(據我所知),以提高性能:

  • 數據庫高速緩存。在數據級別緩存查詢和結果,以便在服務發出查詢時,每次都不執行查詢。如果您的數據庫查詢需要很長時間,並且不同的客戶端發出相同的服務請求,那麼您應該考慮一下。
  • 服務器內存緩存。如果應用,服務器不會執行操作並從緩存的內存中返回內容。這種方法主要是從數據緩存中更簡單,並且更爲有利。
  • 通過HTTP Headers進行客戶端緩存:這是最適合您情況的解決方案。如果客戶端向生命週期中具有多個相同參數的相同服務發出HTTP請求,則不需要一次又一次從服務器獲取相同的響應(如靜態頁面,圖像,css和javascript文件)。您可以使用Cache-Control標頭和max-age屬性來實現此目的。
+0

謝謝你認爲使用memcached將有助於以任何方式,如果我實現的? – Kishore

+0

如果使用HTTP頭實現客戶端和代理緩存,則客戶端只會請求一次服務。如果您實施Memcaching,緩存內容將被髮送給請求相同服務的不同用戶。如果適用,投注的做法是實施兩者。 – SadullahCeran