2013-02-26 65 views
1

背景:我們正在使用grails 2.1.1。截至目前,我們沒有使用任何數據庫。我們爲其他服務器上的每個響應進行Web服務調用。Grails在客戶端存儲和獲取數據

現在的問題是,有Web服務調用,它以XML格式返回一些靜態數據和這些數據是在整個應用程序使用。 xml的大小約爲40kb。這個XML包含像project_list,status_type_list等靜態數據,我們必須在不同的gsp頁面中的各種下拉菜單和菜單項中使用它。

所以,請建議我們處理這種數據的最佳方式。這樣它不會影響我們的頁面加載時間和瀏覽體驗。而且我們也可以在客戶端輕鬆使用數據。

+0

你在哪裏調用從Web服務?客戶端還是服務器?如果它是客戶端,我認爲它是,那麼不能使用緩存插件。 – uchamp 2013-02-26 17:21:15

+0

@uchamp:我們正在從我們的控制器和服務調用Web服務,在這種情況下,我認爲這是客戶端。 – Wasim 2013-02-27 06:16:05

回答

1

回答關於這個問題的評論到。如果需求與您聲明的一樣簡單,我寧願在插件上使用基於註釋的緩存。

如果呼叫正在從服務器端做你希望緩存解析XML的結果,那麼你可以這樣做:

@Cacheable("staticDataCache") 
def getStaticDataFromXML() {} 

然後,您可以用上面的方法拉圖,列出您用來存儲結果的任何數據結構,並將其從緩存中提取出來。

,然後又服務方法刷新緩存,您可以從工作經常致電。

@CacheFlush("staticDataCache") 
def flushStaticDataCache() {} 
+0

Thanx uchamp :)我從來沒有想過它那麼簡單。但是,你能建議我(根據我的要求),我應該使用緩存還是使用servletContext來存儲我的數據。因爲現在都在爲我工作。 – Wasim 2013-02-27 06:42:53

+0

接受你的答案,但我將在我的應用程序中使用servletContext。 – Wasim 2013-02-27 14:44:19

+0

不錯!我不知道從servletContext存儲/檢索的東西很容易。業。要走的路。謝謝你告訴我:) – uchamp 2013-02-27 16:51:21

1

使用cache plugin緩存靜態XML數據。然後添加一些政策,當緩存應該更新...(即用工作來檢查XML已經改變每小時)

+0

thanx爲您的答覆。我想這是我們可以使用的最佳選擇。我已經通過它的文檔,但無法找到如何緩存地圖列表(從我的web服務接收到的XML解析和轉換)。你能幫我嗎? – Wasim 2013-02-27 06:08:37