2012-05-09 42 views
1

Html5仅支持存储键和值的字符串。GWT Html5存储非字符串值

已知哪些方法可以打破此限制,尤其是在GWT的情况下?

是否有库或框架处理这种情况?

标准库的某些代码是否有用?

编辑

我愿做最自然的方法:

GET /请求数据形式缓存/存储, 如果不可用,则通过GWT-RPC请求它

回答

2

AutoBeans对此非常好 - 只需定义一个bean接口和一个工厂接口,AutoBeans将解决如何将数据转换为JSON(或其他一些stringy数据)并返回的其他细节。

这个提问/回答讨论如何这可能都与JavaScriptObject子类,并与AutoBeans加以解决:Cache in GWT app/widget with HTML5 localStorage

如果可能的编码几种不同的类型,这在几个月前来到了一个答案可能会有所帮助:Parsing JSON objects of unknown type with AutoBean on GWT

如果您使用来自RPC的数据,事情会变得棘手。首先,你必须考虑RPC序列化机制为了单向传输(尽管它们中有两个,每个方向一个),以防止某些服务器 - >客户端对象在服务器上出于安全原因被反序列化。其次,请记住,每次模型更改或RPC接口发生更改时,由于序列化格式已被修改,服务器和客户端不再可以亲眼目睹 - 应用程序的localStorage缓存会有一些数据在某些内容之后不再被读取更新。

+0

我想要做的最自然的方法:获取数据表单缓存/存储,如果不可用,然后通过RPC请求它。所以我认为AutoBeans不会进入这个szenario。我打算调查RPC。双向的方面并不伤害我。 localStorage的更新问题对我来说似乎很管用。 –

+0

如果您碰巧使用了RequestFactory,它是RPC的替代品,它已经使用autobeans,所以更容易序列化对象。 –