将对象存储在gwt中的sessionstorage中

时间:2014-03-12 17:25:05

标签: javascript object gwt session-storage

多次询问相关问题,但我觉得我的情况有点不同。

背景 -

我正在GWT中创建我的应用程序,我希望创建一个模块,其对象我希望存储在会话中。该模块将负责通过对服务器进行异步调用来更新其中的持久数据。我会有一个计时器,它会触发一个事件,在每个指定的时间进行服务器调用。现在,我将从代码中的任何位置通过从会话获取此对象的引用,从此对象内的数据结构中获取此持久数据。 所以这个java脚本模块基本上是服务器和本机客户端java脚本之间的接口,它负责维护数据结构。

现在,我有两个问题(截至目前)

  • sessionStorage将所有数据存储在键值对中,其中两者都必须是字符串文字。无论如何,我可以以{@}}保存我的数据的方式将我的模块对象存储在sessionStorage中吗?

  • 即使我找到了将模块对象存储在sessionStorage中的方法,我也不认为它可以对服务器进行异步调用以使持久数据保持最新状态。这个设计有其他替代方案吗?

感谢您的投入。

2 个答案:

答案 0 :(得分:0)

只要它实现了Serializable,就可以在会话中存储任何Java对象。

第二个问题尚不清楚。什么阻止你对服务器进行异步调用?

答案 1 :(得分:0)

如果sessionStorage将键值对存储在字符串文字中,则使用JSON或XML在客户端和服务器之间进行通信。最后从JSON或XML创建对象。

如何从GWT客户端对服务器进行异步调用?

  • 使用AsyncCallback从GWT客户端代码对服务器进行异步调用。

  • 使用GWT JSNI拨打从JavaScript到Java的电话,然后使用第一个选项。