2013-02-26 78 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