我正在努力将不同的用户计数器存储在应用程序级别(而不是数据库)的内存中,并将计数器设置为最多3个。
我使用带有hashmap的单例类来开发此代码,以存储用户ID的键值对,并且它是计数器和时间。
在初始化之后,我在客户端使用这个单例类,它适用于计数器,但是当刷新浏览器时,创建了一个新的单例对象。
我搜索过,并且知道为了安全起见,javascript不使用共享对象,所以我将它移动到rpc调用并使其服务器端对象克服它,但是当我再次测试它时,刷新新对象已创建且数据丢失。
我还测试了静态hashmap来保存应用程序范围的数据,但它具有几乎相同的行为,一旦刷新浏览器,其重置和旧数据就会丢失。它与我们遵循这种方法的普通java web应用程序的行为略有不同。
这种技术曾经适用于我的正常spripng web applicatoins,但不适用于gwt
答案 0 :(得分:0)
你是对的,你需要在服务器端存储这个值,并通过异步调用访问它。由于您以前在Spring中取得了成功,因此您可以考虑再次使用GWT Async服务的实现方面。您可以轻松地将Spring Singleton bean注入GWT Async实现类,并像过去一样使用它。
答案 1 :(得分:0)
柜台的预期寿命是多少?他们是否与其他用户共享? 您可以将它们存储在DataBase或Session中,并通过GWT异步调用来访问它们。
答案 2 :(得分:0)
您可以使用GWT HTML5 LocalStorage来获取客户端持久数据,当然也可以使用服务器端。这实际上取决于你想要达到的目标。