Java GWT中的客户端缓存

Java GWT中的客户端缓存,java,gwt,caching,Java,Gwt,Caching,我们有一个gwt客户端,它从我们的服务器接收大量数据。从逻辑上讲,我希望在客户端缓存数据,避免服务器收到不必要的请求 到今天为止,我已经让我的模型来处理数据的缓存,这不能很好地扩展。这也是一个问题,因为我们团队中的不同开发人员开发了自己的“缓存”功能,这会使项目中充斥着重复 我正在考虑如何实现一个“单入口点”,处理所有的缓存,让模型对如何处理缓存一无所知 有人有过GWT中客户端缓存的经验吗?是否有一种标准的方法可以实现?我建议您研究一下CachingDispatchAsync。它为执行远程命令提

我们有一个gwt客户端,它从我们的服务器接收大量数据。从逻辑上讲,我希望在客户端缓存数据,避免服务器收到不必要的请求

到今天为止,我已经让我的模型来处理数据的缓存,这不能很好地扩展。这也是一个问题,因为我们团队中的不同开发人员开发了自己的“缓存”功能,这会使项目中充斥着重复

我正在考虑如何实现一个“单入口点”,处理所有的缓存,让模型对如何处理缓存一无所知

有人有过GWT中客户端缓存的经验吗?是否有一种标准的方法可以实现?

我建议您研究一下
CachingDispatchAsync
。它为执行远程命令提供了一个单一的入口点,因此是缓存的绝佳机会


A概述了一种可能的方法。

您可能想看看命令模式;Ray Ryan在Google IO上就GWT的最佳实践进行了一次演讲,以下是一份记录:

他建议使用命令模式,使用服务代理中抛出的动作和响应/结果对象。这些对象非常适合封装要在客户端上执行的任何缓存

这里有一段摘录:“我有一个很好的货币单位来实现缓存策略。可能每当我两次看到同一个GET请求时,我都会缓存掉上次得到的响应,并立即将其返回给我自己。不用担心服务器端旅行。”


在一个相当大的项目中,我选择了另一个方向。我开发了一个DtoCache对象,它本质上持有对每个异步回调的引用,这些异步回调需要等待队列中服务调用的响应。一旦DtoCache从服务器接收到对象,它们就被缓存在DtoCache中。缓存的结果从此以后返回到所有排队和新创建的异步调用,用于相同的服务调用。

< P>对于已经完全建立的、非常复杂的CRUD操作缓存引擎,考虑智能GWT。此示例演示了自适应执行客户端操作(当缓存允许时)的能力,同时仍然支持大型数据集的分页:

如果您需要将自己的小部件放在ResultSet类之上,则可以通过ResultSet类公开此行为:

我觉得有点整洁。它是一个在客户端(GWT)和服务器上工作的RESTful JSON数据库

看看


-JP有两个级别的缓存:

  • 在一个浏览器会话期间进行缓存
  • 缓存跨浏览器会话,例如,浏览器重新启动后,缓存的数据应可用
缓存内容:根据您的应用程序,您可能需要缓存

  • 特定用户的受保护数据
  • 公共静态(或半静态,例如很少更改)数据
如何缓存:

  • 对于第一个缓存级别,我们可以按照答案中的建议使用GWT代码,或者编写自己的代码
  • 对于第二个,我们必须使用浏览器缓存功能。标准方法是将数据放入html中(例如静态html文件或jsp/servlet生成的动态文件)。然后,您的应用程序使用技术获取数据